From 165befbfdc284f873a7ab266dee772f957787947 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 16 九月 2023 08:58:26 +0800 Subject: [PATCH] 修复雷达报警投影距离 取消雷达坐标转84坐标 --- src/main/java/com/ard/utils/tcp/ClientHandler.java | 61 +++++++++++++++--------------- 1 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/ard/utils/tcp/ClientHandler.java b/src/main/java/com/ard/utils/tcp/ClientHandler.java index 5a7e3ac..f472809 100644 --- a/src/main/java/com/ard/utils/tcp/ClientHandler.java +++ b/src/main/java/com/ard/utils/tcp/ClientHandler.java @@ -1,24 +1,15 @@ package com.ard.utils.tcp; -/** - * @Description: - * @ClassName: ClientHandler - * @Author: 鍒樿嫃涔� - * @Date: 2023骞�07鏈�05鏃�13:13 - * @Version: 1.0 - **/ - 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.ByteUtils; -import com.ard.utils.GisUtils; +import com.ard.utils.other.ByteUtils; +import com.ard.utils.other.GisUtils; import com.ard.utils.mqtt.MqttConsumer; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelId; -import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.SimpleChannelInboundHandler; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -33,10 +24,13 @@ import java.util.concurrent.TimeUnit; /** - * 瀹㈡埛绔鐞嗗櫒 - * - * @author lijiamin - */ + * @Description: 瀹㈡埛绔鐞嗗櫒 + * @ClassName: ClientHandler + * @Author: 鍒樿嫃涔� + * @Date: 2023骞�07鏈�05鏃�13:13 + * @Version: 1.0 + **/ + @Slf4j(topic = "netty") public class ClientHandler extends SimpleChannelInboundHandler<ByteBuf> { private ChannelHandlerContext context; @@ -151,7 +145,7 @@ byte[] heart = ByteUtils.appendArrays(header, payload, payloadCrc32, footer); // byte[] heart = {0x01, 0x02, 0x01, 0x10, 0x00, 0x00, 0x00, (byte) 0x83, (byte) 0x88, 0x5d, 0x71, 0x01, 0x02, 0x00}; String hexString = DatatypeConverter.printHexBinary(heart); - log.info("鍙戦�佸績璺�:" + hexString); + // log.debug("鍙戦�佸績璺�:" + hexString); message.writeBytes(heart); context.writeAndFlush(message); @@ -177,12 +171,13 @@ String radarName = ardEquipRadarbyte.getName(); Double radarLongitude = ardEquipRadarbyte.getLongitude(); Double radarLagitude = ardEquipRadarbyte.getLatitude(); + Double radarAltitude = ardEquipRadarbyte.getAltitude(); //region crc鏍¢獙-鐩墠浠呯敤浜庢樉绀烘牎楠岀粨鏋� Boolean crc32Check = MessageParsing.CRC32Check(data); if (!crc32Check) { - log.info("CRC32鏍¢獙涓嶉�氳繃"); + log.debug("CRC32鏍¢獙涓嶉�氳繃"); } else { - log.info("CRC32鏍¢獙閫氳繃"); + log.debug("CRC32鏍¢獙閫氳繃"); } //endregion //log.info("鍘熷鏁版嵁:" + DatatypeConverter.printHexBinary(data)); @@ -216,7 +211,7 @@ if (targetNum == 0) { return; } - log.info("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum); + log.debug("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum); //瑙f瀽NET_TARGET_UNIT(64鏄疦ET_TARGET_HEAD鐨勫瓧鑺傛暟) int uintSize = (payloadSizeToDecimal - 64) / targetNum; @@ -229,13 +224,13 @@ // log.info("鐩爣ID:" + DatatypeConverter.printHexBinary(cmdId)); dwID = ByteUtils.toLittleEndian(dwID); int id = ByteUtils.bytesToDecimal(dwID); - // log.info("鐩爣ID鍙凤細" + id); byte[] iDistance = Arrays.copyOfRange(data, index + 8, index + 12); iDistance = ByteUtils.toLittleEndian(iDistance); - Double Distance = ByteUtils.bytesToDouble(iDistance); - // log.info("鐩爣褰撳墠璺濈(m):" + Distance); + double Distance = ByteUtils.bytesToDecimal(iDistance); + log.debug("鐩爣褰撳墠鐩寸嚎璺濈(m):" + Distance); + //region 涓嶉渶瑕佺殑瀛楁 // byte[] dwGSum = Arrays.copyOfRange(data, index + 4, index + 8); // dwGSum = toLittleEndian(dwGSum); @@ -306,10 +301,16 @@ byte[] afTy = Arrays.copyOfRange(data, index + 112, index + 116); afTy = ByteUtils.toLittleEndian(afTy); float fTy = ByteUtils.bytesToFloat(afTy); - // log.info("鍨傜洿瑙掑害:" + fTy); - Double[] radarXY = {radarLagitude, radarLagitude}; + log.debug("鍨傜洿瑙掑害:" + fTy); + // 灏嗚搴﹁浆鎹负寮у害 + double thetaRadians = Math.toRadians(fTy+90); + // 浣跨敤姝e鸡鍑芥暟璁$畻瀵硅竟闀垮害 + Distance = Math.sin(thetaRadians) * Distance; + log.debug("鐩爣鎶曞奖璺濈(m):" + Distance); + + Double[] radarXY = {radarLongitude, radarLagitude}; Double[] alarmXY = GisUtils.CalculateCoordinates(radarXY, Distance, (double) fTx); - // log.info("鎶ヨ淇℃伅锛�" + "銆恑d銆�" + id + "銆恘ame銆�" + alarmPointName + "銆恆larmType銆�" + alarmType + "銆恆larmTime銆�" + alarmTime + "銆恉istance銆�" + Distance + "銆怭銆�" + fTx + "銆怲銆�" + fTy + "銆怷銆�" + alarmXY[0] + "銆怸銆�" + alarmXY[1]); + log.debug("鎶ヨ淇℃伅锛�" + "銆恑d銆�" + id + "銆恘ame銆�" + alarmPointName + "銆恆larmType銆�" + alarmType + "銆恆larmTime銆�" + alarmTime + "銆恉istance銆�" + Distance + "銆怭銆�" + fTx + "銆怲銆�" + fTy + "銆怷銆�" + alarmXY[0] + "銆怸銆�" + alarmXY[1]); ArdAlarmRadar ardAlarmRadar = new ArdAlarmRadar(); ardAlarmRadar.setTargetId(id); ardAlarmRadar.setName(alarmPointName); @@ -335,7 +336,7 @@ byte[] wTargetNum = Arrays.copyOfRange(data, 8, 10); wTargetNum = ByteUtils.toLittleEndian(wTargetNum); targetNum = ByteUtils.bytesToDecimal(wTargetNum); - log.info("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum); + log.debug("鐩爣鎬荤偣鏁�(杞暣鍨�):" + targetNum); if (targetNum == 0) { return; } @@ -363,16 +364,16 @@ byte[] fTx = Arrays.copyOfRange(data, index + 12, index + 16); fTx = ByteUtils.toLittleEndian(fTx); float fTxAngle = ByteUtils.bytesToFloat(fTx); - //log.info("p瑙掑害:" + fTxAngle); + log.debug("p瑙掑害:" + fTxAngle); byte[] fTy = Arrays.copyOfRange(data, index + 16, index + 20); fTy = ByteUtils.toLittleEndian(fTy); float fTyAngle = ByteUtils.bytesToFloat(fTy); - //log.info("t瑙掑害:" + fTyAngle); + log.debug("t瑙掑害:" + fTyAngle); byte[] sAreaNo = Arrays.copyOfRange(data, index + 20, index + 22); sAreaNo = ByteUtils.toLittleEndian(sAreaNo); int AreaNo = ByteUtils.bytesToDecimal(sAreaNo); - //log.info("鐩爣褰掑睘鐨勫憡璀﹀尯鍩熷彿:" + AreaNo); + log.debug("鐩爣褰掑睘鐨勫憡璀﹀尯鍩熷彿:" + AreaNo); byte[] cGrp = Arrays.copyOfRange(data, index + 22, index + 23); cGrp = ByteUtils.toLittleEndian(cGrp); @@ -399,7 +400,7 @@ //log.info("鎵�灞炲憡璀﹀尯鍩熷悕绉�:" + DatatypeConverter.printHexBinary(szName)); String alarmPointName = ByteUtils.bytesToStringZh(szName); // log.info("鎵�灞炲憡璀﹀尯鍩熷悕绉�:" + alarmPointName); - //log.info("鎶ヨ淇℃伅锛�" + "銆恑d銆�" + id + "銆恘ame銆�" + alarmPointName + "銆恆larmType銆�" + alarmType + "銆恆larmTime銆�" + alarmTime); + log.debug("鎶ヨ淇℃伅锛�" + "銆恑d銆�" + id + "銆恘ame銆�" + alarmPointName + "銆恆larmType銆�" + alarmType + "銆恆larmTime銆�" + alarmTime); ArdAlarmRadar ardAlarmRadar = new ArdAlarmRadar(); ardAlarmRadar.setTargetId(id); ardAlarmRadar.setName(alarmPointName); -- Gitblit v1.9.3