From 85b0ee4bae215560010d0e6d0641705923a1aaa3 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 03 十一月 2023 10:42:53 +0800
Subject: [PATCH] 优化工具类
---
src/main/java/com/ard/utils/tcp/ClientHandler.java | 79 ++++++++++++++++++++++++++++-----------
1 files changed, 57 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/ard/utils/tcp/ClientHandler.java b/src/main/java/com/ard/utils/tcp/ClientHandler.java
index 24cb7e0..15258ce 100644
--- a/src/main/java/com/ard/utils/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/tcp/ClientHandler.java
@@ -6,7 +6,7 @@
import com.ard.alarm.radar.domain.RadarAlarmData;
import com.ard.utils.other.ByteUtils;
import com.ard.utils.other.GisUtils;
-import com.ard.utils.mqtt.MqttConsumer;
+import com.ard.utils.mqtt.MqttProducer;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelId;
@@ -17,9 +17,7 @@
import javax.xml.bind.DatatypeConverter;
import java.net.InetSocketAddress;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
@@ -43,7 +41,7 @@
* @throws Exception
*/
@Override
- public void channelActive(ChannelHandlerContext ctx) throws Exception {
+ public void channelActive(ChannelHandlerContext ctx) {
context = ctx;
startHeartbeatTask();//寮�濮嬪彂閫佸績璺�
}
@@ -145,7 +143,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.debug("鍙戦�佸績璺�:" + hexString);
+ // log.debug("鍙戦�佸績璺�:" + hexString);
message.writeBytes(heart);
context.writeAndFlush(message);
@@ -305,7 +303,7 @@
float fTy = ByteUtils.bytesToFloat(afTy);
log.debug("鍨傜洿瑙掑害:" + fTy);
// 灏嗚搴﹁浆鎹负寮у害
- double thetaRadians = Math.toRadians(fTy+90);
+ double thetaRadians = Math.toRadians(fTy + 90);
// 浣跨敤姝e鸡鍑芥暟璁$畻瀵硅竟闀垮害
Distance = Math.sin(thetaRadians) * Distance;
log.debug("鐩爣鎶曞奖璺濈(m):" + Distance);
@@ -322,6 +320,21 @@
radarAlarmInfos.add(ardAlarmRadar);
}
//endregion
+ if (StringUtils.isEmpty(alarmTime)) {
+ return;
+ }
+ if (targetNum == 0) {
+ return;
+ }
+ RadarAlarmData radarAlarmData = new RadarAlarmData();
+ radarAlarmData.setRadarId(radarId);
+ radarAlarmData.setRadarName(radarName);
+ radarAlarmData.setAlarmTime(alarmTime);
+ radarAlarmData.setArdAlarmRadars(radarAlarmInfos);
+ MqttProducer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
+ //鎶芥补鏈虹姸鎬丮QTT闃熷垪
+ radarAlarmData.setArdAlarmRadars(well);
+ MqttProducer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
}
if (Arrays.equals(cmdId, new byte[]{0x04})) {
//region鎶芥补鏈篈I鐘舵�佸弽棣�
@@ -412,7 +425,7 @@
//鎶芥补鏈虹姸鎬侀泦鍚堜腑瑁呭叆鏁版嵁
byte[] szName = Arrays.copyOfRange(data, index + 32, index + 64);
String alarmPointName = ByteUtils.bytesToStringZh(szName);
- log.debug("鎶ヨ淇℃伅锛�" + "銆恑d銆�" + id + "銆恘ame銆�" + alarmPointName + "銆恆larmType銆�" + wellType + "銆恆larmTime銆�" + alarmTime);
+ log.debug("鎶芥补鏈虹姸鎬佹姤璀︿俊鎭細" + "銆恑d銆�" + id + "銆恘ame銆�" + alarmPointName + "銆恆larmType銆�" + wellType + "銆恆larmTime銆�" + alarmTime);
ArdAlarmRadar wellAlarm = new ArdAlarmRadar();
wellAlarm.setTargetId(id);
wellAlarm.setName(alarmPointName);
@@ -420,22 +433,44 @@
well.add(wellAlarm);
}
//endregion
+ if (StringUtils.isEmpty(alarmTime)) {
+ return;
+ }
+ if (targetNum == 0) {
+ return;
+ }
+ RadarAlarmData radarAlarmData = new RadarAlarmData();
+ radarAlarmData.setRadarId(radarId);
+ radarAlarmData.setRadarName(radarName);
+ radarAlarmData.setAlarmTime(alarmTime);
+ radarAlarmData.setArdAlarmRadars(radarAlarmInfos);
+ MqttProducer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
+ //鎶芥补鏈虹姸鎬丮QTT闃熷垪
+ radarAlarmData.setArdAlarmRadars(well);
+ MqttProducer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
}
- if (StringUtils.isEmpty(alarmTime)) {
- return;
+ if (Arrays.equals(cmdId, new byte[]{0x02})) {
+ //region 鍛婅鍓嶇鍙戦�佺殑寮哄埗寮曞淇℃伅
+ byte[] iDistance = Arrays.copyOfRange(data, 4, 8);
+ iDistance = ByteUtils.toLittleEndian(iDistance);
+ long distance = ByteUtils.bytesToDecimal(iDistance);
+ log.info("鐩爣褰撳墠璺濈(m):" + distance);
+ byte[] fTx = Arrays.copyOfRange(data, 8, 12);
+ fTx = ByteUtils.toLittleEndian(fTx);
+ float tx = ByteUtils.bytesToFloat(fTx);
+ log.debug("鏂逛綅:" + tx);
+ byte[] fTy = Arrays.copyOfRange(data, 12, 16);
+ fTy = ByteUtils.toLittleEndian(fTy);
+ float ty= ByteUtils.bytesToFloat(fTy);
+ log.debug("淇话:" + ty);
+ Map<String,Object>forceGuideMap=new HashMap<>();
+ forceGuideMap.put("p",tx);
+ forceGuideMap.put("t",ty);
+ forceGuideMap.put("z",1);
+ forceGuideMap.put("radarId",radarId);
+ //endregion
+ MqttProducer.publish(2, false, "radarForceGuide", JSON.toJSONString(forceGuideMap));
}
- if (targetNum == 0) {
- return;
- }
- RadarAlarmData radarAlarmData = new RadarAlarmData();
- radarAlarmData.setRadarId(radarId);
- radarAlarmData.setRadarName(radarName);
- radarAlarmData.setAlarmTime(alarmTime);
- radarAlarmData.setArdAlarmRadars(radarAlarmInfos);
- MqttConsumer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
- //鎶芥补鏈虹姸鎬丮QTT闃熷垪
- radarAlarmData.setArdAlarmRadars(well);
- MqttConsumer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
} catch (Exception ex) {
log.error("闆疯揪鎶ユ枃瑙f瀽寮傚父:" + ex.getMessage());
}
--
Gitblit v1.9.3