From ff55f15de19cb5bf02fa4d2313f4882ef9b3a452 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 30 四月 2025 10:47:34 +0800 Subject: [PATCH] 表阀一体机上报心跳数据最小间隔经常改动,时常不通知软件开发人员,所以通信中间件根据最小上报数据间隔会切断设备网络连接,为此改变中间件配置,最小心跳间隔改为在properties文件中配置。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java | 79 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 79 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java new file mode 100644 index 0000000..3876932 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java @@ -0,0 +1,79 @@ +package com.dy.simRtu.tcpClient.downData; + +import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1; +import com.dy.common.util.ByteUtil; +import com.dy.common.util.CreateRandom; +import com.dy.simRtu.ServerProperties; +import com.dy.simRtu.tcpClient.upData.*; + +/** + * @Author: liurunyu + * @Date: 2024/11/18 10:57 + * @Description 涓棿浠剁殑涓嬭鏁版嵁 + */ +public class DownData { + + private static int count9602 = 0; + + public void parseData(byte[] bs){ + if(bs != null && bs.length > 0){ + if(bs.length >= (ProtocolConstantV206V1.ctrlIndex) + && bs[0] == ProtocolConstantV206V1.P_Head_Byte + && bs[2] == ProtocolConstantV206V1.P_Head_Byte){ + this.dealP206V1(bs); + }else if(bs.length >= (ProtocolConstantV206V1.UG_codeIndex) + && bs[0] == ProtocolConstantV206V1.UG_P_Head_Byte + && bs[3] == ProtocolConstantV206V1.UG_P_Head_Byte){ + this.dealUpgrade(bs); + } + + } + } + private void dealP206V1(byte[] bs){ + //搴旇鏄摼璺娴嬫暟鎹� + } + private void dealUpgrade(byte[] bs){ + String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex, 1); + if(cdPre.equals("16")){ + //鍗囩骇鍔熻兘鐮� + UpHeartBeat.upHeartBeat = false ;//绂佹涓婅蹇冭烦 + if(bs.length >= ProtocolConstantV206V1.UG_lenHead2Cmd + 1){ + String cdSuf = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex + 1, 1); + String cd = cdPre + cdSuf; + if(cd.equals("1601")){ + //鍗囩骇閰嶇疆 + UpCd9601.upData() ; + + }else if(cd.equals("1602")){ + //鍗囩骇鏁版嵁 + count9602 ++ ; + if(ServerProperties.argOneDie){ + UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦 + }else{ + if(ServerProperties.argMultiDie){ + if(count9602 > 10){ + int random = CreateRandom.create_between(10, 100) ; + if(random > 90){ + UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦 + }else{ + UpCd9602.upData() ; + } + }else{ + UpCd9602.upData() ; + } + }else{ + UpCd9602.upData() ; + } + } + }else if(cd.equals("1603")){ + //鍗囩骇鏍¢獙 + UpCd9603.upData() ; + }else if(cd.equals("1600")){ + //鍗囩骇澶嶄綅 + UpCd9600.upData() ; + UpHeartBeat.upHeartBeat = true ;//涓嶄笂琛屽績璺� + } + } + } + } +} -- Gitblit v1.8.0