From f485e99f717c8f4388dfb51010e41c0be62b62d8 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期五, 15 三月 2024 14:17:16 +0800 Subject: [PATCH] 雷达连接状态:改为0-客户端不通 1-在线 2-周扫未开 --- src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java | 30 +++++++++++++-- src/main/java/com/ard/utils/netty/tcp/ClientHandler.java | 33 ++++++++++++++++ 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java index 6e12a61..3b1ed6a 100644 --- a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java +++ b/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java @@ -21,6 +21,7 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; +import static com.ard.utils.netty.tcp.ClientInitialize.aroundScanfMap; import static com.ard.utils.util.ByteUtils.toLittleEndian; /** @@ -211,6 +212,36 @@ String alarmTime = ""; Integer targetNum = 0; log.debug("澶勭悊闆疯揪" + radarName + "鏁版嵁-->鍛戒护ID:" + cmdIdStr); + //鍓嶇宸ヤ綔鐘舵�佸弽棣� + if (Arrays.equals(cmdId, new byte[]{0x00})) { + //region 鍛婅淇℃伅鍙嶉 + byte[] dfScanAngV = Arrays.copyOfRange(data, 4, 12); + dfScanAngV = toLittleEndian(dfScanAngV); + double ScanAngV = ByteUtils.bytesToDouble(dfScanAngV); + log.info("璁惧鎵弿鐨勪刊浠拌搴�:" + ScanAngV); + + byte[] dfAngDy = Arrays.copyOfRange(data, 12, 20); + dfAngDy = toLittleEndian(dfAngDy); + double AngDy = ByteUtils.bytesToDouble(dfAngDy); + log.info("鍛ㄨ鍥惧儚鐨勫瀭鐩磋鍦鸿搴�:" + AngDy); + + byte[] iImgW = Arrays.copyOfRange(data, 20, 24); + iImgW = toLittleEndian(iImgW); + int ImgW = ByteUtils.bytesToDecimal(iImgW); + log.info("鍛ㄨ鍥惧儚鐨勫:" + ImgW); + byte[] iImgH = Arrays.copyOfRange(data, 24, 28); + iImgH = toLittleEndian(iImgH); + int ImgH = ByteUtils.bytesToDecimal(iImgH); + log.info("鍛ㄨ鍥惧儚鐨勯珮:" + ImgH); + + byte[] cStat = Arrays.copyOfRange(data, 28, 29); + // 鎻愬彇绗�4浣嶈嚦绗�6浣嶇殑鍊� + cStat = toLittleEndian(cStat); + int Stat = cStat[0] & 0b00000001; + log.info("璁惧褰撳墠宸ヤ綔鐘舵��:" + Stat); + aroundScanfMap.put(radar.getIp()+":"+radar.getPort(),Stat); + + } //闆疯揪绉诲姩闃茬伀鎶ヨ if (Arrays.equals(cmdId, new byte[]{0x01})) { //region 鍛婅淇℃伅鍙嶉 @@ -508,4 +539,4 @@ log.error("闆疯揪鎶ユ枃瑙f瀽寮傚父:" + ex.getMessage()); } } -} \ No newline at end of file +} diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java index db58ddb..cbb3b07 100644 --- a/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java +++ b/src/main/java/com/ard/utils/netty/tcp/ClientInitialize.java @@ -41,6 +41,7 @@ public static ConcurrentHashMap<String, ArdEquipRadar> trueConnectMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨勯浄杈� public static ConcurrentHashMap<String, MessageHandler> SucMessageHandlerMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨勬姤鏂囪В鏋愬櫒 public static ConcurrentHashMap<String, Channel> SucChannelMap = new ConcurrentHashMap();//鎴愬姛杩炴帴鐨刬p绔彛瀵瑰簲鐨刵etty閫氶亾 + public static ConcurrentHashMap<String, Integer> aroundScanfMap = new ConcurrentHashMap();//鏄惁鍚姩鍛ㄨ /** * Netty鍒濆鍖栭厤缃� @@ -140,15 +141,36 @@ log.debug("瀹氭椂鐩戞祴闆疯揪杩炴帴鐘舵��"); List<ArdEquipRadar> ardEquipRadars = ardEquipRadarService.selectArdEquipRadarList(new ArdEquipRadar()); ardEquipRadars.stream().forEach(ardEquipRadar -> { - + //鍒ゆ柇涓庨浄杈惧鎴风杩炴帴鐘舵�� boolean online = trueConnectMap.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort()); if (online) { - if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("1")) { - ardEquipRadar.setState("1"); - ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + //杩炴帴闆疯揪瀹㈡埛绔垚鍔� 鍒ゆ柇鍛ㄦ壂鐘舵�� + if (aroundScanfMap.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort())) { + Integer state = aroundScanfMap.get(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort()); + if (state == 1) {//1-鍛ㄦ壂鎵撳紑-杩炴帴鎴愬姛 + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("1")) { + ardEquipRadar.setState("1"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } + } else { + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("2")) { + //2-鍛ㄦ壂鏈紑 + ardEquipRadar.setState("2"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } + + } + } else { + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("2")) { + //2-鍛ㄦ壂鏈紑 + ardEquipRadar.setState("2"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } } } else { + //杩炴帴闆疯揪瀹㈡埛绔け璐� if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("0")) { + //0-瀹㈡埛绔笉閫� ardEquipRadar.setState("0"); ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); } -- Gitblit v1.9.3