Browse Source

cl2 基于设备状态和任务状态分步生成设备任务消息

master
yuliang 6 months ago
parent
commit
044a952740
  1. 19
      servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java
  2. 2
      servo/src/main/java/com/yvan/logisticsModel/PtrAgvItem.java

19
servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java

@ -115,7 +115,7 @@ public class AmrMessageHandler {
JsonWrapper jw = new JsonWrapper(json); JsonWrapper jw = new JsonWrapper(json);
int id = jw.asInt("id"); int id = jw.asInt("id");
String agvId = jw.asInt("content", "VehicleId") + ""; String agvId = jw.asInt("content", "VehicleId") + "";
int seqNo = jw.asInt("content", "SeqNo");
PtrAgvItem agvItem = getPtrAgvItem(agvId); PtrAgvItem agvItem = getPtrAgvItem(agvId);
if(agvItem == null ){ if(agvItem == null ){
return; return;
@ -137,7 +137,7 @@ public class AmrMessageHandler {
* 小车离线 20200 AmrOfflineMessage * 小车离线 20200 AmrOfflineMessage
* 异常上报 20250 AmrExceptionMessage * 异常上报 20250 AmrExceptionMessage
*/ */
log.info("3-Received message: " + json);
AmrMessage<?> amrMessage = null; AmrMessage<?> amrMessage = null;
switch (id) { switch (id) {
case AMR_TASK_COMPLETED: case AMR_TASK_COMPLETED:
@ -145,7 +145,7 @@ public class AmrMessageHandler {
break; break;
case AMR_TASK_STATUS: { case AMR_TASK_STATUS: {
int EventId = jw.asInt("content", "EventId"); int EventId = jw.asInt("content", "EventId");
log.info("1-Received message: " + json); // log.info("1-Received message: " + json);
switch (EventId) { switch (EventId) {
case 0: case 0:
case 2: case 2:
@ -222,7 +222,7 @@ public class AmrMessageHandler {
// if (amrMessage.content instanceof AmrHeartbeatMessage) { // if (amrMessage.content instanceof AmrHeartbeatMessage) {
// AmrHeartbeatMessage msg = (AmrHeartbeatMessage) amrMessage.content; // AmrHeartbeatMessage msg = (AmrHeartbeatMessage) amrMessage.content;
// if (msg.VehicleId == 102) { // if (msg.VehicleId == 102) {
log.info("Received message: " + json); // log.info("Received message: " + json);
// } // }
// } // }
@ -246,9 +246,12 @@ public class AmrMessageHandler {
amrMessage = JacksonUtils.parse(json, typeRef20250Message); amrMessage = JacksonUtils.parse(json, typeRef20250Message);
break; break;
default: default:
log.error("未知消息:{}", json); // log.error("未知消息:{}", json);
break; break;
} }
if (id != AMR_ACK && id !=AMR_HEARTBEAT) {
AmrMessageHandler.sendCmdAck(agvId, seqNo);
}
} }
static { static {
@ -263,7 +266,7 @@ public class AmrMessageHandler {
public static void sendCmd10010(String vehicleId, RcsTaskMessage rcsTaskMessage) throws JsonProcessingException, MqttException { public static void sendCmd10010(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 = 10010; baseMessage.id = RCS_TASK;
baseMessage.content = rcsTaskMessage; baseMessage.content = rcsTaskMessage;
String json = JacksonUtils.toJson(baseMessage); String json = JacksonUtils.toJson(baseMessage);
log.info("sendCmd10010: {}", json); log.info("sendCmd10010: {}", json);
@ -280,10 +283,10 @@ public class AmrMessageHandler {
BaseMessage baseMessage = new BaseMessage(); BaseMessage baseMessage = new BaseMessage();
RcsAckMessage rcsAckMsg = new RcsAckMessage(); RcsAckMessage rcsAckMsg = new RcsAckMessage();
rcsAckMsg.SeqNo = seqNo; rcsAckMsg.SeqNo = seqNo;
baseMessage.id = 10010; baseMessage.id = RCS_ACK;
baseMessage.content = rcsAckMsg; baseMessage.content = rcsAckMsg;
String json = JacksonUtils.toJson(baseMessage); String json = JacksonUtils.toJson(baseMessage);
log.info("sendCmd10010: {}", json); log.info("sendCmd10050: {}", json);
mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false); mqttClient.publish("/wcs_server/" + vehicleId, json.getBytes(StandardCharsets.UTF_8), 0, false);
} }

2
servo/src/main/java/com/yvan/logisticsModel/PtrAgvItem.java

@ -327,7 +327,7 @@ public class PtrAgvItem extends ExecutorItem {
deviceTaskEnd.isLastTask = true; deviceTaskEnd.isLastTask = true;
deviceTaskList.add(deviceTaskEnd); deviceTaskList.add(deviceTaskEnd);
planQueue.addAll(sequence.taskList); // planQueue.addAll(sequence.taskList);
deviceTaskQueue.addAll(deviceTaskList); deviceTaskQueue.addAll(deviceTaskList);
String json = JsonWrapper.toJson(deviceTaskList); String json = JsonWrapper.toJson(deviceTaskList);

Loading…
Cancel
Save