ScReadThread.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package at.acdp.urweb.sclient.data;
  2. import at.acdp.urweb.RobotCommand;
  3. import at.acdp.urweb.URBot;
  4. import at.acdp.urweb.sclient.SecondaryClient;
  5. import at.acdp.urweb.sclient.URLog;
  6. import okhttp3.*;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import java.io.IOException;
  10. public class ScReadThread implements Runnable {
  11. private static final Logger log = LoggerFactory.getLogger(ScReadThread.class);
  12. private final String ip;
  13. private final int port;
  14. private final URBot urBot;
  15. SecondaryClient rde;
  16. public ScReadThread(String ip, int port, URBot urBot) {
  17. this.ip = ip;
  18. this.port = port;
  19. this.urBot=urBot;
  20. }
  21. public SecondaryClient getRde() {
  22. return rde;
  23. }
  24. @Override
  25. public void run() {
  26. while (true) {
  27. try {
  28. read();
  29. } catch (Exception e) {
  30. log.warn("read thread terminated", e);
  31. URLog.add(new Message("read thread terminated", e));
  32. }
  33. }
  34. }
  35. private void read() throws IOException {
  36. rde = new SecondaryClient(ip, port, urBot);
  37. VersionMessage vm = rde.connect();
  38. log.info("Connected to: {}:{}", ip, port);
  39. while (true) {
  40. rde.readPackage();
  41. }
  42. }
  43. public void writeCmd(RobotCommand r) {
  44. writeCmd(r.cmd);
  45. }
  46. private void writeCmd(String s) {
  47. if (!s.endsWith("\n"))
  48. s += "\n";
  49. log.debug("writecmd: \"" + s + "\"");
  50. rde.writeCmd(s);
  51. }
  52. }