aijinhui
2023-10-06 b95df429267d2d4932c4b604e9acdfc0617d06d4
雷达设备
已修改1个文件
26 ■■■■ 文件已修改
src/main/java/com/ard/utils/tcp/ClientHandler.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ard/utils/tcp/ClientHandler.java
@@ -194,6 +194,8 @@
            // log.info("有效负载大小(转整型):" + payloadSizeToDecimal);
            //endregion
            List<ArdAlarmRadar> radarAlarmInfos = new ArrayList<>();
            //抽油机新推送集合
            List<ArdAlarmRadar> well = new ArrayList<>();
            String alarmTime = "";
            Integer targetNum = 0;
            if (Arrays.equals(cmdId, new byte[]{0x01})) {
@@ -381,6 +383,8 @@
                    //log.info("所属组:" + Grp);
                    //endregion
                    String alarmType;
                    //新集合中运行变量
                    String wellType = "运行";
                    byte[] cStat = Arrays.copyOfRange(data, index + 23, index + 24);
                    cStat = ByteUtils.toLittleEndian(cStat);
                    //String binaryString = String.format("%8s", Integer.toBinaryString(cStat[0] & 0xFF)).replace(' ', '0');
@@ -391,11 +395,6 @@
                    // 判断提取的值
                    if (isB0) {
                        alarmType = "雷达抽油机停机";
                    } else {
                        continue;
                    }
                    //log.info("报警类型:" + alarmType);
                    byte[] szName = Arrays.copyOfRange(data, index + 32, index + 64);
                    //log.info("所属告警区域名称:" + DatatypeConverter.printHexBinary(szName));
                    String alarmPointName = ByteUtils.bytesToStringZh(szName);
@@ -406,6 +405,20 @@
                    ardAlarmRadar.setName(alarmPointName);
                    ardAlarmRadar.setAlarmType(alarmType);
                    radarAlarmInfos.add(ardAlarmRadar);
                        wellType = "停机";
                    } else {
                        wellType = "运行";
//                        continue;
                    }
                    //新的集合中装入数据
                    byte[] szName = Arrays.copyOfRange(data, index + 32, index + 64);
                    String alarmPointName = ByteUtils.bytesToStringZh(szName);
                    //log.info("报警类型:" + alarmType);
                    ArdAlarmRadar wellAlarm = new ArdAlarmRadar();
                    wellAlarm.setTargetId(id);
                    wellAlarm.setName(alarmPointName);
                    wellAlarm.setAlarmType(wellType);
                    well.add(wellAlarm);
                }
                //endregion
            }
@@ -421,6 +434,9 @@
            radarAlarmData.setAlarmTime(alarmTime);
            radarAlarmData.setArdAlarmRadars(radarAlarmInfos);
            MqttConsumer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
            //新的MQTT队列
            radarAlarmData.setArdAlarmRadars(well);
            MqttConsumer.publish(2, false, "well", JSON.toJSONString(radarAlarmData));
        } catch (Exception ex) {
            log.error("雷达报文解析异常:" + ex.getMessage());
        }