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