|
|
|
@ -102,7 +102,7 @@ public class AmrMessageHandler { |
|
|
|
int id = jw.asInt("id"); |
|
|
|
String agvId = jw.asInt("content", "VehicleId") + ""; |
|
|
|
int seqNo = jw.asInt("content", "SeqNo"); |
|
|
|
PtrAgvItem agvItem = getPtrAgvItem(agvId); |
|
|
|
AmrAgvItem agvItem = getPtrAgvItem(agvId); |
|
|
|
if (agvItem == null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
@ -199,9 +199,9 @@ public class AmrMessageHandler { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public PtrAgvItem getPtrAgvItem(String vehicleId) { |
|
|
|
public AmrAgvItem getPtrAgvItem(String vehicleId) { |
|
|
|
var executorItem = runtime.executorItemMap.get(vehicleId); |
|
|
|
return (PtrAgvItem) executorItem; |
|
|
|
return (AmrAgvItem) executorItem; |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
@ -416,7 +416,7 @@ public class AmrMessageHandler { |
|
|
|
private final Map<String, Long> lastMessageTimeMap = Maps.newConcurrentMap(); |
|
|
|
private final ScheduledExecutorService delayCalculator = Executors.newScheduledThreadPool(4); |
|
|
|
|
|
|
|
private void handleHeartbeatMessage(PtrAgvItem agvItem, AmrHeartbeatMessage message) { |
|
|
|
private void handleHeartbeatMessage(AmrAgvItem agvItem, AmrHeartbeatMessage message) { |
|
|
|
agvItem.handleHeartbeat(message); |
|
|
|
|
|
|
|
// 计算延迟
|
|
|
|
@ -425,19 +425,19 @@ public class AmrMessageHandler { |
|
|
|
updateRedisNetDelay(agvItem.getId(), netDelay); |
|
|
|
} |
|
|
|
|
|
|
|
private void handleAmrOnlineMessage(PtrAgvItem agvItem, AmrOnlineMessage message) { |
|
|
|
private void handleAmrOnlineMessage(AmrAgvItem agvItem, AmrOnlineMessage message) { |
|
|
|
agvItem.handleOnlineEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
private void handleAmrOfflineMessage(PtrAgvItem agvItem, AmrOfflineMessage message) { |
|
|
|
private void handleAmrOfflineMessage(AmrAgvItem agvItem, AmrOfflineMessage message) { |
|
|
|
agvItem.handleOfflineEvent(); |
|
|
|
} |
|
|
|
|
|
|
|
private void handleTaskCompletedMessage(PtrAgvItem agvItem, AmrTaskCompletedMessage message) { |
|
|
|
private void handleTaskCompletedMessage(AmrAgvItem agvItem, AmrTaskCompletedMessage message) { |
|
|
|
agvItem.taskCompleted(message.CurX, message.CurY, message.CurDirection, 4); |
|
|
|
} |
|
|
|
|
|
|
|
private void handleLandmarkMessage(PtrAgvItem agvItem, AmrLandmarkMessage message) { |
|
|
|
private void handleLandmarkMessage(AmrAgvItem agvItem, AmrLandmarkMessage message) { |
|
|
|
// 这是源逻辑,CurLogicX / CurLogicY / CurDirection 需要到 PtrAgvItem 中更新, 因为要触发事件
|
|
|
|
agvItem.x = message.X; |
|
|
|
agvItem.y = message.Y; |
|
|
|
@ -446,7 +446,7 @@ public class AmrMessageHandler { |
|
|
|
agvItem.updatePosition(message.CurLogicX, message.CurLogicY, message.CurDirection); |
|
|
|
} |
|
|
|
|
|
|
|
private void handleStatusMessage(PtrAgvItem agvItem, AmrStatusMessage message) { |
|
|
|
private void handleStatusMessage(AmrAgvItem agvItem, AmrStatusMessage message) { |
|
|
|
// 更新位置. TODO 貌似不包含 direction 信息
|
|
|
|
agvItem.updatePosition(message.CurLogicX, message.CurLogicY, agvItem.direction); |
|
|
|
|
|
|
|
@ -463,7 +463,7 @@ public class AmrMessageHandler { |
|
|
|
agvItem.updateRedisStatus(); |
|
|
|
} |
|
|
|
|
|
|
|
private void handleTaskStatusMessage(PtrAgvItem agvItem, JsonWrapper jw, String json) throws MqttException, JsonProcessingException { |
|
|
|
private void handleTaskStatusMessage(AmrAgvItem agvItem, JsonWrapper jw, String json) throws MqttException, JsonProcessingException { |
|
|
|
|
|
|
|
int EventId = jw.asInt("content", "EventId"); |
|
|
|
// log.info("1-Received message: " + json);
|
|
|
|
|