From 36f3e16c6fd871648c3998c8252f5a95a304c1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Sun, 23 Mar 2025 14:47:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:Event=E7=9B=B4=E6=8E=A5=E5=A4=84=E7=90=86ta?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/DeviceTcpMessageEventListener.java | 40 +++++++++++++--------- .../service/device/DeviceCommandService.java | 18 ---------- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/qyft/ms/system/core/listener/DeviceTcpMessageEventListener.java b/src/main/java/com/qyft/ms/system/core/listener/DeviceTcpMessageEventListener.java index f455404..e04ee60 100644 --- a/src/main/java/com/qyft/ms/system/core/listener/DeviceTcpMessageEventListener.java +++ b/src/main/java/com/qyft/ms/system/core/listener/DeviceTcpMessageEventListener.java @@ -1,44 +1,50 @@ package com.qyft.ms.system.core.listener; import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.qyft.ms.app.device.spray.SprayTaskExecutor; import com.qyft.ms.app.device.status.DeviceStatus; import com.qyft.ms.app.device.status.SprayTask; import com.qyft.ms.system.core.event.DeviceTcpMessageEvent; import com.qyft.ms.system.service.device.DeviceCommandService; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; @Slf4j @Component +@RequiredArgsConstructor public class DeviceTcpMessageEventListener { private final DeviceCommandService deviceCommandService; private final DeviceStatus deviceStatus; private final SprayTaskExecutor sprayTaskExecutor; - public DeviceTcpMessageEventListener(DeviceCommandService deviceCommandService, DeviceStatus deviceStatus, SprayTaskExecutor sprayTaskExecutor) { - this.deviceCommandService = deviceCommandService; - this.deviceStatus = deviceStatus; - this.sprayTaskExecutor = sprayTaskExecutor; - } - @EventListener public void handleDeviceTcpMessageEvent(DeviceTcpMessageEvent event) { JSONObject deviceResult = event.getDeviceResult(); String tag = deviceResult.getStr("tag"); - String eventType = deviceResult.getStr("event_type"); - if ("system_e_stop_pressed".equals(eventType)) {//系统急停按钮被按下 - sprayTaskExecutor.stopTask();//终止喷涂任务线程 - SprayTask.getInstance().clear(); - deviceStatus.setSpraying(false); - deviceStatus.setPaused(false); - deviceStatus.setSuspendable(false); - deviceStatus.setStopPressed(true); - } else if ("system_e_stop_released".equals(eventType)) {//系统急停按钮被释放 - deviceStatus.setStopPressed(false); + if ("ACK".equals(tag)) { + log.info("ACK {}", JSONUtil.toJsonStr(deviceResult)); + deviceCommandService.completeCommandAck(deviceResult); + } else if ("RESPONSE".equals(tag)) { + log.info("RESPONSE {}", JSONUtil.toJsonStr(deviceResult)); + deviceCommandService.completeCommandResponse(deviceResult); + } else if ("EVENT".equals(tag)) { + String eventType = deviceResult.getJSONObject("data").getStr("event_type"); + if ("system_e_stop_pressed".equals(eventType)) {//系统急停按钮被按下 + sprayTaskExecutor.stopTask();//终止喷涂任务线程 + SprayTask.getInstance().clear(); + deviceStatus.setSpraying(false); + deviceStatus.setPaused(false); + deviceStatus.setSuspendable(false); + deviceStatus.setStopPressed(true); + } else if ("system_e_stop_released".equals(eventType)) {//系统急停按钮被释放 + deviceStatus.setStopPressed(false); + } + } else if ("STATUS".equals(tag)) { + } - deviceCommandService.handleDeviceResult(deviceResult); } } diff --git a/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java b/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java index 05e8597..5e68f49 100644 --- a/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java +++ b/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java @@ -2,8 +2,6 @@ package com.qyft.ms.system.service.device; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.qyft.ms.app.device.spray.SprayTaskExecutor; -import com.qyft.ms.app.device.status.DeviceStatus; import com.qyft.ms.system.common.constant.CommandStatus; import com.qyft.ms.system.common.device.command.CommandFuture; import com.qyft.ms.system.common.device.command.CyclicNumberGenerator; @@ -100,22 +98,6 @@ public class DeviceCommandService { return commandFuture; } - - public void handleDeviceResult(JSONObject deviceResult) { - String tag = deviceResult.getStr("tag"); - if ("ACK".equals(tag)) { - log.info("ACK {}", JSONUtil.toJsonStr(deviceResult)); - completeCommandAck(deviceResult); - } else if ("RESPONSE".equals(tag)) { - log.info("RESPONSE {}", JSONUtil.toJsonStr(deviceResult)); - completeCommandResponse(deviceResult); - } else if ("EVENT".equals(tag)) { - - } else if ("STATUS".equals(tag)) { - - } - } - public void completeCommandAck(JSONObject deviceResult) { // Integer cmdId = deviceResult.getInt("cmdId"); // if (cmdId != null) {