Browse Source

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

master
yuliang 6 months ago
parent
commit
533c170b33
  1. 10
      servo/src/main/java/com/galaxis/rcs/ptr/AmrMessageHandler.java
  2. 2
      servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvItem.java
  3. 16
      servo/src/main/resources/logback-spring.xml

10
servo/src/main/java/com/galaxis/rcs/ptr/AmrMessageHandler.java

@ -94,6 +94,9 @@ public class AmrMessageHandler {
public void handleAgvRobotStatusMessage(MqttMessage message) throws MqttException, JsonProcessingException { public void handleAgvRobotStatusMessage(MqttMessage message) throws MqttException, JsonProcessingException {
byte[] messageData = message.getPayload(); byte[] messageData = message.getPayload();
String json = new String(messageData, StandardCharsets.UTF_8); String json = new String(messageData, StandardCharsets.UTF_8);
log.debug("收到消息: {}", json);
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") + "";
@ -206,7 +209,7 @@ public class AmrMessageHandler {
list.toArray(ar); list.toArray(ar);
BannerUtils.printConfig(log, "MQTT 发送报文 [" + id + "] RcsMessageType." + RcsMessageType.fromValue(id) + " - " + RcsMessageType.fromValue(id).description, ar); BannerUtils.printConfig(log, "MQTT 发送报文 [" + id + "] RcsMessageType." + RcsMessageType.fromValue(id) + " - " + RcsMessageType.fromValue(id).description, ar);
} }
log.debug("发送消息: {}", payload);
ptrMqttClient.publish(topic, payload); ptrMqttClient.publish(topic, payload);
} }
@ -450,7 +453,7 @@ public class AmrMessageHandler {
agvItem.updateRedisStatus(); agvItem.updateRedisStatus();
} }
private void handleTaskStatusMessage(PtrAgvItem agvItem, JsonWrapper jw, String json) { private void handleTaskStatusMessage(PtrAgvItem agvItem, JsonWrapper jw, String json) throws MqttException, JsonProcessingException {
// int eventId = jw.asInt("content", "EventId"); // int eventId = jw.asInt("content", "EventId");
// int seqNo = jw.asInt("content", "SeqNo"); // int seqNo = jw.asInt("content", "SeqNo");
// //
@ -484,6 +487,9 @@ public class AmrMessageHandler {
AmrTaskStatusMessage<TaskModeChangeData> modeMessage = taskModeChange.content; AmrTaskStatusMessage<TaskModeChangeData> modeMessage = taskModeChange.content;
agvItem.updateDeviceTaskStatus((int) modeMessage.SeqNo, 0, 0, modeMessage.EventId); agvItem.updateDeviceTaskStatus((int) modeMessage.SeqNo, 0, 0, modeMessage.EventId);
agvItem.updateTaskMode(modeMessage.Info.TaskMode); agvItem.updateTaskMode(modeMessage.Info.TaskMode);
if (modeMessage.Info.TaskMode == 1) {
this.sendCmdConfig(agvItem.id, agvItem.getConfig());
}
break; break;
case 4: case 4:
AmrMessage<AmrTaskStatusMessage<TaskCompletedData>> taskCompleted = JacksonUtils.parse(json, typeRef20011_4Message); AmrMessage<AmrTaskStatusMessage<TaskCompletedData>> taskCompleted = JacksonUtils.parse(json, typeRef20011_4Message);

2
servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvItem.java

@ -708,7 +708,7 @@ public abstract class PtrAgvItem extends ExecutorItem {
deviceTask.operationType = COperationType.charge; deviceTask.operationType = COperationType.charge;
deviceTask.planTaskIdSet.add(plan.getPlanTaskId()); deviceTask.planTaskIdSet.add(plan.getPlanTaskId());
// 处理充电距离(车的充电口到充电器被压下后的距离、一般被压下20mm) // 处理充电距离(车的充电口到充电器被压下后的距离、一般被压下20mm)
deviceTask.chargeDirection = 0; deviceTask.chargeDirection = 2;
deviceTask.chargeLocation = 200; deviceTask.chargeLocation = 200;
// 标记任务分组结束 // 标记任务分组结束
deviceTask.isGroupEnd = true; deviceTask.isGroupEnd = true;

16
servo/src/main/resources/logback-spring.xml

@ -30,6 +30,19 @@
</encoder> </encoder>
</appender> </appender>
<!-- 控制台日志:输出全部日志到控制台 -->
<appender name="STDOUT1" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>${ENCODER_PATTERN_CONSOLE}</Pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level> <!-- 阈值设为DEBUG级别 -->
<onMatch>ACCEPT</onMatch> <!-- 接受DEBUG及以上级别的日志 -->
<onMismatch>DENY</onMismatch> <!-- 拒绝DEBUG以下的日志(如TRACE)-->
</filter>
</appender>
<!-- 文件日志:输出全部日志到文件 --> <!-- 文件日志:输出全部日志到文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${FILE_NAME}.log</file> <file>${LOG_PATH}/${FILE_NAME}.log</file>
@ -67,7 +80,7 @@
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${ENCODER_PATTERN}</pattern> <pattern>${ENCODER_PATTERN}</pattern>
</encoder> </encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level> <level>DEBUG</level>
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
@ -82,6 +95,7 @@
<!-- AMR 报文日志 --> <!-- AMR 报文日志 -->
<logger name="com.galaxis.rcs.ptr.AmrMessageHandler" level="DEBUG" additivity="false"> <logger name="com.galaxis.rcs.ptr.AmrMessageHandler" level="DEBUG" additivity="false">
<appender-ref ref="AMR_FILE"/> <appender-ref ref="AMR_FILE"/>
<appender-ref ref="STDOUT1"/>
</logger> </logger>
<root level="INFO"> <root level="INFO">

Loading…
Cancel
Save