2 changed files with 23 additions and 35 deletions
-
40src/main/java/com/qyft/ms/system/core/listener/DeviceTcpMessageEventListener.java
-
18src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.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); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue