From 616e0764ed9e61ab8a2e8b523eecbba6b98c5c13 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 01 十一月 2023 17:09:55 +0800
Subject: [PATCH] 增加告警前端发送的强制引导信息接收并发送mqtt
---
src/main/java/com/ard/utils/tcp/ClientHandler.java | 74 +++++++++++++++++++++++++++---------
1 files changed, 55 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/ard/utils/tcp/ClientHandler.java b/src/main/java/com/ard/utils/tcp/ClientHandler.java
index 2693e76..be814de 100644
--- a/src/main/java/com/ard/utils/tcp/ClientHandler.java
+++ b/src/main/java/com/ard/utils/tcp/ClientHandler.java
@@ -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;
@@ -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鐘舵�佸弽棣�
@@ -420,22 +433,45 @@
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("distance",distance);
+ forceGuideMap.put("p",tx);
+ forceGuideMap.put("t",ty);
+ forceGuideMap.put("radarId",radarId);
+ forceGuideMap.put("radarName",radarName);
+ //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);
- MqttProducer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
- //鎶芥补鏈虹姸鎬丮QTT闃熷垪
- radarAlarmData.setArdAlarmRadars(well);
- MqttProducer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
} catch (Exception ex) {
log.error("闆疯揪鎶ユ枃瑙f瀽寮傚父:" + ex.getMessage());
}
--
Gitblit v1.9.3