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