Browse Source

Merge remote-tracking branch 'origin/master'

master
lizw-2015 6 months ago
parent
commit
686a70c7b3
  1. 207
      servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java
  2. 2
      servo/src/main/java/com/galaxis/rcs/connector/cl2/Cl2DeviceConnector.java
  3. 1
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsAckMessage.java
  4. 10
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsCancelTaskMessage.java
  5. 31
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsConfigMessage.java
  6. 18
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsControlDoorMessage.java
  7. 5
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsHeartBeatMessage.java
  8. 12
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsQueryStatusMessage.java
  9. 18
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateBodyMessage.java
  10. 18
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsRotateRackMessage.java
  11. 24
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSRMessage.java
  12. 24
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsSetLocationMessage.java
  13. 12
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsTaskMessage.java
  14. 18
      servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsWaitMessage.java

207
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.TaskModeChangeData;
import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskStatusChangeData; import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskStatusChangeData;
import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskTypeChangeData; import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskTypeChangeData;
import com.galaxis.rcs.connector.cl2.sendEntity.RcsAckMessage; import com.galaxis.rcs.connector.cl2.sendEntity.*;
import com.galaxis.rcs.connector.cl2.sendEntity.RcsTaskMessage;
import com.galaxis.rcs.connector.cl2.sendEntity.BaseMessage;
import com.yvan.logisticsModel.LogisticsRuntimeService; import com.yvan.logisticsModel.LogisticsRuntimeService;
import com.yvan.logisticsModel.PtrAgvItem; import com.yvan.logisticsModel.PtrAgvItem;
import lombok.extern.slf4j.Slf4j; 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_QUERY_STATUS = 10110;
private static final int RCS_CANCEL_TASK = 10120; private static final int RCS_CANCEL_TASK = 10120;
private static final int RCS_SET_LOCATION = 10200; private static final int RCS_SET_LOCATION = 10200;
private static final int RCS_WAIT_READY = 19997; private static final int RCS_WAIT = 19997;
// 接收消息id // 接收消息id
/** /**
@ -217,14 +215,7 @@ public class AmrMessageHandler {
break; break;
case AMR_HEARTBEAT: case AMR_HEARTBEAT:
AmrMessage<AmrHeartbeatMessage> heartbeatMessage = JacksonUtils.parse(json, typeRef20100Message); AmrMessage<AmrHeartbeatMessage> heartbeatMessage = JacksonUtils.parse(json, typeRef20100Message);
sendxt(heartbeatMessage.content.VehicleId + "", heartbeatMessage.content.SeqNo + ""); sendCmdHeartBeat(heartbeatMessage.content.VehicleId + "");
// if (amrMessage.content instanceof AmrHeartbeatMessage) {
// AmrHeartbeatMessage msg = (AmrHeartbeatMessage) amrMessage.content;
// if (msg.VehicleId == 102) {
// log.info("Received message: " + json);
// }
// }
break; break;
case AMR_BOOT: case AMR_BOOT:
@ -263,7 +254,25 @@ public class AmrMessageHandler {
var executorItem = runtime.executorItemMap.get("3"); var executorItem = runtime.executorItemMap.get("3");
return (PtrAgvItem) executorItem; 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; MqttClient mqttClient = MqttConfig.mqttClient;
BaseMessage baseMessage = new BaseMessage(); BaseMessage baseMessage = new BaseMessage();
baseMessage.id = RCS_TASK; baseMessage.id = RCS_TASK;
@ -273,11 +282,29 @@ public class AmrMessageHandler {
mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); 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 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 { public static void sendCmdAck(String vehicleId, int seqNo) throws JsonProcessingException, MqttException {
MqttClient mqttClient = MqttConfig.mqttClient; MqttClient mqttClient = MqttConfig.mqttClient;
BaseMessage baseMessage = new BaseMessage(); BaseMessage baseMessage = new BaseMessage();
@ -290,4 +317,154 @@ public class AmrMessageHandler {
mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); 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<RcsConfigMessage> 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);
}
} }

2
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 class Cl2DeviceConnector {
public void sendTask(String vehicleId, RcsTaskMessage rcsTaskMessage) throws MqttException, JsonProcessingException { public void sendTask(String vehicleId, RcsTaskMessage rcsTaskMessage) throws MqttException, JsonProcessingException {
AmrMessageHandler.sendCmd10010(vehicleId, rcsTaskMessage); AmrMessageHandler.sendCmdTask(vehicleId, rcsTaskMessage);
} }
} }

1
servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsAckMessage.java

@ -1,5 +1,6 @@
package com.galaxis.rcs.connector.cl2.sendEntity; package com.galaxis.rcs.connector.cl2.sendEntity;
// 电文应答 10050
public class RcsAckMessage { public class RcsAckMessage {
// 作业序号 UInt32 所要应答消息的SeqNo(对方的) // 作业序号 UInt32 所要应答消息的SeqNo(对方的)
public int SeqNo; public int SeqNo;

10
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;
}
}

31
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();
}
}

18
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();
}
}

5
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 {
}

12
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();
}
}

18
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();
}
}

18
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();
}
}

24
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();
}
}

24
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();
}
}

12
servo/src/main/java/com/galaxis/rcs/connector/cl2/sendEntity/RcsTaskMessage.java

@ -1,11 +1,13 @@
package com.galaxis.rcs.connector.cl2.sendEntity; package com.galaxis.rcs.connector.cl2.sendEntity;
import com.galaxis.rcs.communication.amrCommunication.AmrMessageHandler;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.clever.core.AppContextHolder; import org.clever.core.AppContextHolder;
import org.clever.data.redis.Redis; import org.clever.data.redis.Redis;
import java.util.List; import java.util.List;
// AMR作业指令 10010
public class RcsTaskMessage { public class RcsTaskMessage {
// 作业序号 UInt32 // 作业序号 UInt32
public int SeqNo; public int SeqNo;
@ -77,17 +79,13 @@ public class RcsTaskMessage {
public Boolean EndSelfAdaption; 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() { public RcsTaskMessage() {
long seqNo = redis.vIncrement(REDIS_KEY); this.SeqNo = AmrMessageHandler.getNewSeqNo();
if (seqNo > Integer.MAX_VALUE) {
redis.kDelete(REDIS_KEY);
seqNo = redis.vIncrement(REDIS_KEY).intValue();
} }
this.SeqNo = (int)seqNo; public RcsTaskMessage(int seqNo) {
this.SeqNo = seqNo;
} }
@AllArgsConstructor @AllArgsConstructor

18
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();
}
}
Loading…
Cancel
Save