‘liusuyi’
2023-11-01 606d7388589829e6a7108a48898d4e4126312d73
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;
@@ -43,7 +43,7 @@
     * @throws Exception
     */
    @Override
    public void channelActive(ChannelHandlerContext ctx) throws Exception {
    public void channelActive(ChannelHandlerContext ctx) {
        context = ctx;
        startHeartbeatTask();//开始发送心跳
    }
@@ -194,7 +194,7 @@
            // log.info("有效负载大小(转整型):" + payloadSizeToDecimal);
            //endregion
            List<ArdAlarmRadar> radarAlarmInfos = new ArrayList<>();
            //抽油机新推送集合
            //抽油机状态雷达推送集合
            List<ArdAlarmRadar> well = new ArrayList<>();
            String alarmTime = "";
            Integer targetNum = 0;
@@ -383,8 +383,8 @@
                    //log.info("所属组:" + Grp);
                    //endregion
                    String alarmType;
                    //新集合中运行变量
                    String wellType = "运行";
                    //抽油机状态变量
                    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');
@@ -408,12 +408,11 @@
                        wellType = "停机";
                    } else {
                        wellType = "运行";
//                        continue;
                    }
                    //新的集合中装入数据
                    //抽油机状态集合中装入数据
                    byte[] szName = Arrays.copyOfRange(data, index + 32, index + 64);
                    String alarmPointName = ByteUtils.bytesToStringZh(szName);
                    //log.info("报警类型:" + alarmType);
                    log.debug("抽油机状态报警信息:" + "【id】" + id + "【name】" + alarmPointName + "【alarmType】" + wellType + "【alarmTime】" + alarmTime);
                    ArdAlarmRadar wellAlarm = new ArdAlarmRadar();
                    wellAlarm.setTargetId(id);
                    wellAlarm.setName(alarmPointName);
@@ -433,10 +432,10 @@
            radarAlarmData.setRadarName(radarName);
            radarAlarmData.setAlarmTime(alarmTime);
            radarAlarmData.setArdAlarmRadars(radarAlarmInfos);
            MqttConsumer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
            //新的MQTT队列
            MqttProducer.publish(2, false, "radar", JSON.toJSONString(radarAlarmData));
            //抽油机状态MQTT队列
            radarAlarmData.setArdAlarmRadars(well);
            MqttConsumer.publish(2, false, "well", JSON.toJSONString(radarAlarmData));
            MqttProducer.publish(2, false, "radarWellData", JSON.toJSONString(radarAlarmData));
        } catch (Exception ex) {
            log.error("雷达报文解析异常:" + ex.getMessage());
        }