diff --git a/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java b/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java index 4494b70..b62501e 100644 --- a/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java +++ b/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java @@ -10,9 +10,7 @@ import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskCompletedData; import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskModeChangeData; import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskStatusChangeData; import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskTypeChangeData; -import com.galaxis.rcs.connector.cl2.sendEntity.RcsAckMessage; -import com.galaxis.rcs.connector.cl2.sendEntity.RcsTaskMessage; -import com.galaxis.rcs.connector.cl2.sendEntity.BaseMessage; +import com.galaxis.rcs.connector.cl2.sendEntity.*; import com.yvan.logisticsModel.LogisticsRuntimeService; import com.yvan.logisticsModel.PtrAgvItem; import lombok.extern.slf4j.Slf4j; @@ -56,7 +54,7 @@ public class AmrMessageHandler { private static final int RCS_QUERY_STATUS = 10110; private static final int RCS_CANCEL_TASK = 10120; private static final int RCS_SET_LOCATION = 10200; - private static final int RCS_WAIT_READY = 19997; + private static final int RCS_WAIT = 19997; // 接收消息id /** @@ -217,14 +215,7 @@ public class AmrMessageHandler { break; case AMR_HEARTBEAT: AmrMessage heartbeatMessage = JacksonUtils.parse(json, typeRef20100Message); - sendxt(heartbeatMessage.content.VehicleId + "", heartbeatMessage.content.SeqNo + ""); - -// if (amrMessage.content instanceof AmrHeartbeatMessage) { -// AmrHeartbeatMessage msg = (AmrHeartbeatMessage) amrMessage.content; -// if (msg.VehicleId == 102) { -// log.info("Received message: " + json); -// } -// } + sendCmdHeartBeat(heartbeatMessage.content.VehicleId + ""); break; case AMR_BOOT: @@ -263,7 +254,25 @@ public class AmrMessageHandler { var executorItem = runtime.executorItemMap.get("3"); return (PtrAgvItem) executorItem; } - public static void sendCmd10010(String vehicleId, RcsTaskMessage rcsTaskMessage) throws JsonProcessingException, MqttException { + + private static final String REDIS_KEY = "amr:task:message:seqNo"; + public static int getNewSeqNo() { + long seqNo = redis.vIncrement(REDIS_KEY); + if (seqNo > Integer.MAX_VALUE) { + redis.kDelete(REDIS_KEY); + seqNo = redis.vIncrement(REDIS_KEY).intValue(); + } + return (int) seqNo; + } + + /** + * 发送任务 + * @param vehicleId 设备id + * @param rcsTaskMessage 任务信息 + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdTask(String vehicleId, RcsTaskMessage rcsTaskMessage) throws JsonProcessingException, MqttException { MqttClient mqttClient = MqttConfig.mqttClient; BaseMessage baseMessage = new BaseMessage(); baseMessage.id = RCS_TASK; @@ -273,11 +282,29 @@ public class AmrMessageHandler { mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); } - public static void sendxt(String vehicleId, String seqNo)throws JsonProcessingException, MqttException { + /** + * 发送SR消息 + * @param vehicleId 设备id + * @param rcsSRMessage SR消息 + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdSR(String vehicleId, RcsSRMessage rcsSRMessage) throws JsonProcessingException, MqttException { MqttClient mqttClient = MqttConfig.mqttClient; - mqttClient.publish("/wcs_server/" + vehicleId, ("{\"id\": 10110, \"content\": {\"SeqNo\": " + seqNo + "}}").getBytes(), 0, false); + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_SR; + baseMessage.content = rcsSRMessage; + String json = JacksonUtils.toJson(baseMessage); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); } + /** + * 发送应答消息 + * @param vehicleId 设备id + * @param seqNo 被应答的消息序号 + * @throws JsonProcessingException + * @throws MqttException + */ public static void sendCmdAck(String vehicleId, int seqNo) throws JsonProcessingException, MqttException { MqttClient mqttClient = MqttConfig.mqttClient; BaseMessage baseMessage = new BaseMessage(); @@ -290,4 +317,154 @@ public class AmrMessageHandler { mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); } + /** + * 发送旋转货架消息 + * @param vehicleId 设备id + * @param rcsRotateRackMessage 旋转货架消息 + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdRotateRack(String vehicleId, RcsRotateRackMessage rcsRotateRackMessage) throws JsonProcessingException, MqttException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_ROTATE_RACK; + baseMessage.content = rcsRotateRackMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10080: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + /** + * 发送旋转车身消息 + * @param vehicleId 设备id + * @param rcsRotateBodyMessage 旋转车身消息 + * @throws JsonProcessingException + * @throws MqttException + */ + public void sendCmdRotateBody(String vehicleId, RcsRotateBodyMessage rcsRotateBodyMessage) throws JsonProcessingException, MqttException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_ROTATE_BODY; + baseMessage.content = rcsRotateBodyMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10081: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + // 发送控制卷帘门消息 10082 + public void sendCmdControlDoor(String vehicleId, RcsControlDoorMessage rcsControlDoorMessage) throws MqttException, JsonProcessingException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_CONTROL_DOOR; + baseMessage.content = rcsControlDoorMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10082: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + /** + * 发送配置信息 + * @param vehicleId 设备id + * @param rcsConfigMessage 配置信息 + * @throws MqttException + * @throws JsonProcessingException + */ + public void sendCmdConfig(String vehicleId, RcsConfigMessage rcsConfigMessage) throws MqttException, JsonProcessingException { + MqttClient mqttClient = MqttConfig.mqttClient; + AmrMessage baseMessage = new AmrMessage<>(); + baseMessage.id = RCS_CONFIG; + baseMessage.content = rcsConfigMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10060: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + /** + * 发送心跳 + * @param vehicleId 设备id + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdHeartBeat(String vehicleId)throws JsonProcessingException, MqttException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_HEARTBEAT; + baseMessage.content = new RcsHeartBeatMessage(); + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10100: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + /** + * 发送状态查询消息 + * @param vehicleId 设备id + * @throws MqttException + * @throws JsonProcessingException + */ + public static void sendCmdQueryStatus(String vehicleId) throws MqttException, JsonProcessingException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_QUERY_STATUS; + RcsQueryStatusMessage rcsQueryStatusMessage = new RcsQueryStatusMessage(); + rcsQueryStatusMessage.SeqNo = getNewSeqNo(); + baseMessage.content = rcsQueryStatusMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10110: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + /** + * 发送取消任务消息 + * @param vehicleId 设备id + * @param seqNo 待取消的任务序号 + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdCancelTask(String vehicleId, int seqNo) throws JsonProcessingException, MqttException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_CANCEL_TASK; + baseMessage.content = new RcsCancelTaskMessage(seqNo); + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10120: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + + } + + /** + * 发送设置小车坐标消息 + * @param vehicleId 设备id + * @param rcsSetLocationMessage 位置信息 + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdSetLocation(String vehicleId, RcsSetLocationMessage rcsSetLocationMessage) throws JsonProcessingException, MqttException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_SET_LOCATION; + baseMessage.content = rcsSetLocationMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd10200: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + + } + + /** + * 发送等待就绪消息 + * @param vehicleId 设备id + * @param rcsWaitMessage 等待消息 + * @throws JsonProcessingException + * @throws MqttException + */ + public static void sendCmdWait(String vehicleId, RcsWaitMessage rcsWaitMessage) throws JsonProcessingException, MqttException { + MqttClient mqttClient = MqttConfig.mqttClient; + BaseMessage baseMessage = new BaseMessage(); + baseMessage.id = RCS_WAIT; + baseMessage.content = rcsWaitMessage; + String json = JacksonUtils.toJson(baseMessage); + log.info("sendCmd19997: {}", json); + mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); + } + + } diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2DeviceConnector.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2DeviceConnector.java index 292de43..f56f0ea 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2DeviceConnector.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2DeviceConnector.java @@ -13,7 +13,7 @@ import org.eclipse.paho.mqttv5.common.MqttException; public class Cl2DeviceConnector { public void sendTask(String vehicleId, RcsTaskMessage rcsTaskMessage) throws MqttException, JsonProcessingException { - AmrMessageHandler.sendCmd10010(vehicleId, rcsTaskMessage); + AmrMessageHandler.sendCmdTask(vehicleId, rcsTaskMessage); } } diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsAckMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsAckMessage.java index ac44ff9..561ccf5 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsAckMessage.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsAckMessage.java @@ -1,5 +1,6 @@ package com.galaxis.rcs.connector.cl2.sendEntity; +// 电文应答 10050 public class RcsAckMessage { // 作业序号 UInt32 所要应答消息的SeqNo(对方的) public int SeqNo; diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsCancelTaskMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsCancelTaskMessage.java new file mode 100644 index 0000000..0c5f43b --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsCancelTaskMessage.java @@ -0,0 +1,10 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +// 取消已下发小车任务 10120 +public class RcsCancelTaskMessage { + // 作业序号 UInt32 + public int SeqNo; + public RcsCancelTaskMessage(int seqNo) { + SeqNo = seqNo; + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsConfigMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsConfigMessage.java new file mode 100644 index 0000000..734b129 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsConfigMessage.java @@ -0,0 +1,31 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +//配置信息 10060 +public class RcsConfigMessage { + // 作业序号 UInt32 + public int SeqNo; + // X坐标最大长度 UInt16 暂时未使用 + public int XLength = 1000; + // Y坐标最大长度 UInt16 暂时未使用 + public int YLength = 1000; + // 相邻地标间距 UInt16 单位:mm (目前等距) + public int Gap = 1000; + // 心跳间隔 UInt32 单位: s + public int HeartBeat = 60; + // 小车所有上报消息重试间隔(未收到应答消息时重发消息) UInt32 单位: s + public int MqRetryTime = 3; + + public RcsConfigMessage(int xLength, int yLength, int gap, int heartBeat, int mqRetryTime) { + XLength = xLength; + YLength = yLength; + Gap = gap; + HeartBeat = heartBeat; + MqRetryTime = mqRetryTime; + SeqNo = AmrMessageHandler.getNewSeqNo(); + } + public RcsConfigMessage() { + SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsControlDoorMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsControlDoorMessage.java new file mode 100644 index 0000000..f32a068 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsControlDoorMessage.java @@ -0,0 +1,18 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +// 控制卷帘门 10082 +public class RcsControlDoorMessage { + // 作业序号 UInt32 + public int SeqNo; + // 卷帘状态 UInt8 0: 不控制(无动作) 1: 关闭状态 2: 半开状态 3: 全开状态 4: 停止(暂不支持) + public short CurtainCmd; + public RcsControlDoorMessage(short curtainCmd) { + CurtainCmd = curtainCmd; + SeqNo = AmrMessageHandler.getNewSeqNo(); + } + public RcsControlDoorMessage() { + SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsHeartBeatMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsHeartBeatMessage.java new file mode 100644 index 0000000..207f4f5 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsHeartBeatMessage.java @@ -0,0 +1,5 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +// 心跳 10100 +public class RcsHeartBeatMessage { +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsQueryStatusMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsQueryStatusMessage.java new file mode 100644 index 0000000..5defcd9 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsQueryStatusMessage.java @@ -0,0 +1,12 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +//状态查询 10110 +public class RcsQueryStatusMessage { + // 作业序号 UInt32 + public int SeqNo; + public RcsQueryStatusMessage() { + SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateBodyMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateBodyMessage.java new file mode 100644 index 0000000..f1cd1d8 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateBodyMessage.java @@ -0,0 +1,18 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +//旋转车身 10081 +public class RcsRotateBodyMessage { + // 作业序号 UInt32 + public int SeqNo; + // 车头朝向 UInt8 0: X轴正向 1: Y轴正向 2: X轴负向 3: Y轴负向 + public short Direction; + public RcsRotateBodyMessage(short direction) { + SeqNo = AmrMessageHandler.getNewSeqNo(); + Direction = direction; + } + public RcsRotateBodyMessage() { + SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateRackMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateRackMessage.java new file mode 100644 index 0000000..d247ffc --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateRackMessage.java @@ -0,0 +1,18 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +//旋转货架 10080 +public class RcsRotateRackMessage { + // 作业序号 UInt32 + public int SeqNo; + // 货架A面朝向 UInt8 0: X轴正向 1: Y轴正向 2: X轴负向 3: Y轴负向 + public short Direction; + public RcsRotateRackMessage(short direction) { + SeqNo = AmrMessageHandler.getNewSeqNo(); + Direction = direction; + } + public RcsRotateRackMessage() { + SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSRMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSRMessage.java new file mode 100644 index 0000000..3bb17a6 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSRMessage.java @@ -0,0 +1,24 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +// 停止/解除 10040 +public class RcsSRMessage { + // 作业序号 UInt32 + public int SeqNo; + // 操作代码 Uint8 0-停止 1-解除 + public short OperationCode; + // 停止点X坐标 Uint16 + public int StopX; + // 停止点Y坐标 Uint16 + public int StopY; + public RcsSRMessage(short operationCode, int stopX, int stopY) { + this.OperationCode = operationCode; + this.StopX = stopX; + this.StopY = stopY; + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } + public RcsSRMessage() { + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSetLocationMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSetLocationMessage.java new file mode 100644 index 0000000..3696681 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSetLocationMessage.java @@ -0,0 +1,24 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +// 设置小车坐标 10200 +public class RcsSetLocationMessage { + // 作业序号 UInt32 + public int SeqNo; + // X坐标 Uint16 + public int X; + // Y坐标 Uint16 + public int Y; + // 车头朝向 UInt8 0: X轴正向 1: Y轴正向 2: X轴负向 3: Y轴负向 15: 未知(小车保持原车头方向) + public short Direction; + public RcsSetLocationMessage(int x, int y, short direction) { + this.X = x; + this.Y = y; + this.Direction = direction; + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } + public RcsSetLocationMessage() { + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsTaskMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsTaskMessage.java index 490bd4e..2c1c969 100644 --- a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsTaskMessage.java +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsTaskMessage.java @@ -1,11 +1,13 @@ package com.galaxis.rcs.connector.cl2.sendEntity; +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; import lombok.AllArgsConstructor; import org.clever.core.AppContextHolder; import org.clever.data.redis.Redis; import java.util.List; +// AMR作业指令 10010 public class RcsTaskMessage { // 作业序号 UInt32 public int SeqNo; @@ -77,17 +79,13 @@ public class RcsTaskMessage { public Boolean EndSelfAdaption; - private static final Redis redis = AppContextHolder.getBean("defaultRedis", Redis.class, true); - private static final String REDIS_KEY = "amr:task:message:seqNo"; public RcsTaskMessage() { - long seqNo = redis.vIncrement(REDIS_KEY); - if (seqNo > Integer.MAX_VALUE) { - redis.kDelete(REDIS_KEY); - seqNo = redis.vIncrement(REDIS_KEY).intValue(); - } - this.SeqNo = (int)seqNo; + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } + public RcsTaskMessage(int seqNo) { + this.SeqNo = seqNo; } @AllArgsConstructor diff --git a/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsWaitMessage.java b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsWaitMessage.java new file mode 100644 index 0000000..4e7640a --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsWaitMessage.java @@ -0,0 +1,18 @@ +package com.galaxis.rcs.connector.cl2.sendEntity; + +import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler; + +public class RcsWaitMessage { + // 作业序号 UInt32 + public int SeqNo; + // 等待时间(s)Double -1:结束等待(仅SLAM车支持) 0:持续等待(仅SLAM车支持) 大于0:等待对应的时间后返回成功 + public double Seconds; + + public RcsWaitMessage(double seconds) { + this.Seconds = seconds; + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } + public RcsWaitMessage() { + this.SeqNo = AmrMessageHandler.getNewSeqNo(); + } +}