‘liusuyi’
2023-11-01 616e0764ed9e61ab8a2e8b523eecbba6b98c5c13
增加告警前端发送的强制引导信息接收并发送mqtt
已修改1个文件
44 ■■■■■ 文件已修改
src/main/java/com/ard/utils/tcp/ClientHandler.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
@@ -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));
                //抽油机状态MQTT队列
                radarAlarmData.setArdAlarmRadars(well);
                MqttProducer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
            }
            if (Arrays.equals(cmdId, new byte[]{0x04})) {
                //region抽油机AI状态反馈
@@ -420,7 +433,6 @@
                    well.add(wellAlarm);
                }
                //endregion
            }
            if (StringUtils.isEmpty(alarmTime)) {
                return;
            }
@@ -436,6 +448,30 @@
            //抽油机状态MQTT队列
            radarAlarmData.setArdAlarmRadars(well);
            MqttProducer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
            }
            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));
            }
        } catch (Exception ex) {
            log.error("雷达报文解析异常:" + ex.getMessage());
        }