|
@@ -48,6 +48,16 @@ public class SecondaryClient {
|
|
|
case MessageType.ROBOT_STATE:
|
|
|
readRobotState(di, size);
|
|
|
break;
|
|
|
+ case MessageType.PROGRAM_STATE_MESSAGE:
|
|
|
+ var psm=new ProgramStateMessage();
|
|
|
+ psm.read(di, size);
|
|
|
+ URLog.add(psm);
|
|
|
+ break;
|
|
|
+ case MessageType.MODBUS_INFO_MESSAGE:
|
|
|
+ var m=new ModbusInfoMessage();
|
|
|
+ m.read(di, size);
|
|
|
+ URLog.add(m);
|
|
|
+ break;
|
|
|
default:
|
|
|
log.warn("unknown ptype: "+pType+", size: "+size);
|
|
|
byte[] pack=new byte[size-5];
|
|
@@ -166,7 +176,6 @@ public class SecondaryClient {
|
|
|
di.readFully(data);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private AdditionalInfo readAdditionalInfo(CountDataInputStream di, int size) throws IOException {
|
|
|
AdditionalInfo ai=new AdditionalInfo();
|
|
|
ai.read(di, size);
|
|
@@ -191,13 +200,51 @@ public class SecondaryClient {
|
|
|
byte source = di.readByte();
|
|
|
int robotMessageType = di.readUnsignedByte();
|
|
|
switch (robotMessageType) {
|
|
|
+ case RobotMessageType.RUNTIME_EXCEPTION:
|
|
|
+ var rte=new RobotRuntimeException();
|
|
|
+ rte.read(di, size);
|
|
|
+ URLog.add(rte);
|
|
|
+ log.debug(rte.toString());
|
|
|
+ break;
|
|
|
+ case RobotMessageType.KEY:
|
|
|
+ var rmk=new RobotMessageKey();
|
|
|
+ rmk.read(di, size);
|
|
|
+ URLog.add(rmk);
|
|
|
+ log.debug(rmk.toString());
|
|
|
+ break;
|
|
|
+ case RobotMessageType.PROGRAM_LABEL:
|
|
|
+ var rpl=new RobotProgramLabel();
|
|
|
+ rpl.read(di, size);
|
|
|
+ URLog.add(rpl);
|
|
|
+ log.debug(rpl.toString());
|
|
|
+ break;
|
|
|
+ case RobotMessageType.ERROR_CODE:
|
|
|
+ var rme=new RobotMessageError();
|
|
|
+ rme.read(di, size);
|
|
|
+ URLog.add(rme);
|
|
|
+ log.debug(rme.toString());
|
|
|
+ break;
|
|
|
+ case RobotMessageType.ZWOELF:
|
|
|
+ var zm=new ZwoelfMessageKey();
|
|
|
+ zm.read(di, size);
|
|
|
+ URLog.add(zm);
|
|
|
+ log.debug(zm.toString());
|
|
|
+ break;
|
|
|
+ case RobotMessageType.TEXT:
|
|
|
+ var t=new RobotMessageText();
|
|
|
+ t.read(di, size);
|
|
|
+ URLog.add(t);
|
|
|
+ log.debug(t.toString());
|
|
|
+ break;
|
|
|
default:
|
|
|
- log.info("unknown msg: " + (int) robotMessageType);
|
|
|
+ log.info("unknown msg: {} size: {}", (int) robotMessageType, size);
|
|
|
byte[] buf = new byte[size - 15];
|
|
|
di.readFully(buf);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
void readRobotState(CountDataInputStream di, int size) throws IOException {
|
|
|
int remaining=size-5;
|
|
|
while(remaining>0)
|
|
@@ -235,7 +282,6 @@ public class SecondaryClient {
|
|
|
return md;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
public void writeCmd(String cmd) {
|
|
|
try {
|
|
|
System.out.println("send cmd:" + cmd);
|