Browse Source

设备TCP通信采用json,处理三种不同类型的json数据

master
白凤吉 6 months ago
parent
commit
88df056bdc
  1. 16
      src/main/java/com/qyft/gd/device/common/constant/TcpMessageType.java
  2. 17
      src/main/java/com/qyft/gd/device/handler/DeviceMessageHandler.java
  3. 9
      src/main/java/com/qyft/gd/device/service/DeviceAlarmService.java
  4. 9
      src/main/java/com/qyft/gd/device/service/DeviceFeedbackService.java
  5. 3
      src/main/java/com/qyft/gd/device/service/DeviceStateService.java

16
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";
}

17
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<String> {
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);
}
}
}

9
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 {
}

9
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 {
}

3
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);

Loading…
Cancel
Save