diff --git a/src/main/java/com/qyft/gd/device/common/constant/TcpMessageType.java b/src/main/java/com/qyft/gd/device/common/constant/TcpMessageType.java new file mode 100644 index 0000000..8625a9f --- /dev/null +++ b/src/main/java/com/qyft/gd/device/common/constant/TcpMessageType.java @@ -0,0 +1,16 @@ +package com.qyft.gd.device.common.constant; + +public class TcpMessageType { + /** + * 设备状态 + */ + public static final String STATUS = "status"; + /** + * 设备报警 + */ + public static final String ALARM = "alarm"; + /** + * 设备指令反馈 + */ + public static final String FEEDBACK = "feedback"; +} diff --git a/src/main/java/com/qyft/gd/device/handler/DeviceMessageHandler.java b/src/main/java/com/qyft/gd/device/handler/DeviceMessageHandler.java index 29f6b7b..aece38f 100644 --- a/src/main/java/com/qyft/gd/device/handler/DeviceMessageHandler.java +++ b/src/main/java/com/qyft/gd/device/handler/DeviceMessageHandler.java @@ -2,6 +2,7 @@ package com.qyft.gd.device.handler; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.qyft.gd.device.common.constant.TcpMessageType; import com.qyft.gd.device.model.bo.DeviceStatus; import com.qyft.gd.device.service.DeviceStateService; import io.netty.channel.ChannelHandler; @@ -25,13 +26,19 @@ public class DeviceMessageHandler extends SimpleChannelInboundHandler { try { // 解析 JSON JSONObject json = JSONUtil.parseObj(msg); - DeviceStatus deviceStatus = json.toBean(DeviceStatus.class); - // 更新设备状态 - deviceStateService.updateDeviceStatus(deviceStatus); + String type = json.getStr("type"); - log.info("设备状态已更新: {}", json.toStringPretty()); + if(TcpMessageType.STATUS.equals(type)){//设备状态 + DeviceStatus deviceStatus = json.toBean(DeviceStatus.class); + deviceStateService.updateDeviceStatus(deviceStatus); // 更新设备状态 + log.info("设备状态已更新: {}", json.toStringPretty()); + }else if(TcpMessageType.ALARM.equals(type)){//设备报警 + + }else if(TcpMessageType.FEEDBACK.equals(type)){//设备指令反馈 + + } } catch (Exception e) { - log.error("设备状态更新错误: {}, error: {}", msg, e.getMessage(), e); + log.error("TCP数据处理错误: {}, error: {}", msg, e.getMessage(), e); } } } \ No newline at end of file diff --git a/src/main/java/com/qyft/gd/device/service/DeviceAlarmService.java b/src/main/java/com/qyft/gd/device/service/DeviceAlarmService.java new file mode 100644 index 0000000..52ac042 --- /dev/null +++ b/src/main/java/com/qyft/gd/device/service/DeviceAlarmService.java @@ -0,0 +1,9 @@ +package com.qyft.gd.device.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class DeviceAlarmService { +} diff --git a/src/main/java/com/qyft/gd/device/service/DeviceFeedbackService.java b/src/main/java/com/qyft/gd/device/service/DeviceFeedbackService.java new file mode 100644 index 0000000..4668bd0 --- /dev/null +++ b/src/main/java/com/qyft/gd/device/service/DeviceFeedbackService.java @@ -0,0 +1,9 @@ +package com.qyft.gd.device.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class DeviceFeedbackService { +} diff --git a/src/main/java/com/qyft/gd/device/service/DeviceStateService.java b/src/main/java/com/qyft/gd/device/service/DeviceStateService.java index cb598c9..4305217 100644 --- a/src/main/java/com/qyft/gd/device/service/DeviceStateService.java +++ b/src/main/java/com/qyft/gd/device/service/DeviceStateService.java @@ -16,6 +16,9 @@ public class DeviceStateService { } } + /** + * 获取设备状态 + */ public DeviceStatus getDeviceStatus() { synchronized (deviceStatus) { return BeanUtil.copyProperties(deviceStatus, DeviceStatus.class);