From 0819312988ae6e041360fd354ef57a73633b7354 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 07 九月 2024 16:16:12 +0800
Subject: [PATCH] 二厂数字化工况预警与停机报警提交

---
 src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java |   68 ++++++++++++++++++++++-----------
 1 files changed, 45 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
similarity index 91%
rename from src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
rename to src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
index 6e12a61..dd76e15 100644
--- a/src/main/java/com/ard/utils/netty/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
@@ -1,26 +1,26 @@
-package com.ard.utils.netty.tcp;
+package com.ard.utils.netty.tcp.handler;
 
 import com.alibaba.fastjson2.JSON;
 import com.ard.alarm.radar.domain.ArdAlarmRadar;
 import com.ard.alarm.radar.domain.ArdEquipRadar;
 import com.ard.alarm.radar.domain.RadarAlarmData;
+import com.ard.utils.netty.tcp.RadarNettyTcpClient;
 import com.ard.utils.util.ByteUtils;
 import com.ard.utils.util.GisUtils;
 import com.ard.utils.mqtt.MqttProducer;
 import io.netty.buffer.ByteBuf;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelId;
-import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.channel.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
 
 import javax.xml.bind.DatatypeConverter;
 import java.net.InetSocketAddress;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 
+import static com.ard.utils.netty.tcp.RadarNettyTcpClient.aroundScanfMap;
 import static com.ard.utils.util.ByteUtils.toLittleEndian;
 
 /**
@@ -30,7 +30,8 @@
  * @Date: 2023骞�07鏈�05鏃�13:13
  * @Version: 1.0
  **/
-
+@Component
+//@ChannelHandler.Sharable
 @Slf4j(topic = "netty")
 public class ClientHandler extends SimpleChannelInboundHandler<ByteBuf> {
     private ChannelHandlerContext context;
@@ -57,18 +58,9 @@
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
         InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
-        String ipPort = ipSocket.getHostString() + ":" + ipSocket.getPort();
-        log.error("涓庤澶�" + ipPort + "杩炴帴鏂紑!");
-        // 杩炴帴鏂紑鍚庣殑鏈�鍚庡鐞�
-        ctx.pipeline().remove(this);
-        ctx.deregister();
-        ctx.close();
-        // 灏嗗け璐ヤ俊鎭彃鍏et闆嗗悎
-        ArdEquipRadar radar = ClientInitialize.trueConnectMap.get(ipPort);
-        if (radar != null) {
-            ClientInitialize.falseConnectSet.add(radar);
-            ClientInitialize.trueConnectMap.remove(ipPort);
-        }
+        String ip = ipSocket.getHostString();
+        int port = ipSocket.getPort();
+        log.error("涓庨浄杈捐澶囥��" + ip + ":" + port + "銆戣繛鎺ユ柇寮�!");
         super.channelInactive(ctx);
     }
 
@@ -84,11 +76,11 @@
     public void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) {
         InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
         String ipPort = ipSocket.getHostString() + ":" + ipSocket.getPort();
-        ArdEquipRadar radar = ClientInitialize.trueConnectMap.get(ipPort);
+        ArdEquipRadar radar = RadarNettyTcpClient.RADAR_MAP.get(ipPort);
         if (radar == null) {
             return;
         }
-        MessageHandler messageHandler = ClientInitialize.SucMessageHandlerMap.get(ipPort);
+        MessageHandler messageHandler = RadarNettyTcpClient.SucMessageHandlerMap.get(ipPort);
         if (messageHandler == null) {
             return;
         }
@@ -158,7 +150,7 @@
             message.writeBytes(heart);
             context.writeAndFlush(message);
 
-        }, 0, 5, TimeUnit.SECONDS);
+        }, 0, 2, TimeUnit.SECONDS);
     }
 
     /**
@@ -211,6 +203,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 +530,4 @@
             log.error("闆疯揪鎶ユ枃瑙f瀽寮傚父:" + ex.getMessage());
         }
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3