From 38ab8fbd4355070def9e3b39f362731dd4dea6d1 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期三, 30 八月 2023 20:54:12 +0800 Subject: [PATCH] 优化设备状态解析 --- igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ServerUtil.java | 33 ++++++++++++++++++++++++++++++++- 1 files changed, 32 insertions(+), 1 deletions(-) diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ServerUtil.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ServerUtil.java index 11a7979..1a2813b 100644 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ServerUtil.java +++ b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/ServerUtil.java @@ -1,7 +1,9 @@ package com.ld.igds.protocol.modbus; import com.ld.igds.constant.Constant; +import com.ld.igds.constant.DeviceStatus; import com.ld.igds.util.ContextUtil; +import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Map; @@ -30,7 +32,36 @@ * @param deviceCode 璁惧閫氶亾ID * @param status 涓嶈�冭檻璁惧绫诲瀷锛屽彧鍦ㄩ�氶亾涓婃爣璁版槸OPEN鎴栬�匔LOSE鍗冲彲 */ - public static void add2StatusMap(String companyId, String serId, String deviceCode, String status) { + public static void add2StatusMap(String companyId, String serId, String deviceCode, String status, String mainLink) { + + //鑻ヤ笉涓虹┖锛屽垯鏌ヨ涓昏澶囩姸鎬� + if(StringUtils.isNotEmpty(mainLink)){ + String oldStatus = contextStatusMap.get(ContextUtil.buildDeviceStatusKey(companyId, serId, mainLink)); + //鑻ラ绐楁垨椋庡彛寮� + if(DeviceStatus.OPEN.getCode().equals(oldStatus)){ + //鑻ラ鏈哄紑 + if(DeviceStatus.OPEN.getCode().equals(status)){ + status = DeviceStatus.F_OPEN.getCode(); + } + //鑻ラ鏈哄叧 + if(DeviceStatus.CLOSE.getCode().equals(status)){ + status = DeviceStatus.W_OPEN.getCode(); + } + } + //鑻ラ绐楁垨椋庡彛寮� + if(DeviceStatus.CLOSE.getCode().equals(oldStatus)){ + //鑻ラ鏈哄紑 + if(DeviceStatus.OPEN.getCode().equals(status)){ + status = DeviceStatus.ERROR.getCode(); + } + //鑻ラ鏈哄叧 + if(DeviceStatus.CLOSE.getCode().equals(status)){ + status = DeviceStatus.W_CLOSE.getCode(); + } + } + contextStatusMap.put(ContextUtil.buildDeviceStatusKey(companyId, serId, mainLink), status); + return; + } contextStatusMap.put(ContextUtil.buildDeviceStatusKey(companyId, serId, deviceCode), status); } -- Gitblit v1.9.3