From a299299d0ca45a03ff1b31a337ff823fde516c6a Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 11 十二月 2024 17:57:21 +0800 Subject: [PATCH] 完善代码 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java | 35 +++++++++++++++++++++++++++++------ 1 files changed, 29 insertions(+), 6 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 index 33709d1..3876932 100644 --- 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 @@ -2,6 +2,8 @@ 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.*; /** @@ -11,8 +13,10 @@ */ public class DownData { + private static int count9602 = 0; + public void parseData(byte[] bs){ - if(bs != null && bs.length >= ProtocolConstantV206V1.lenHead2Code){ + if(bs != null && bs.length > 0){ if(bs.length >= (ProtocolConstantV206V1.ctrlIndex) && bs[0] == ProtocolConstantV206V1.P_Head_Byte && bs[2] == ProtocolConstantV206V1.P_Head_Byte){ @@ -29,19 +33,38 @@ //搴旇鏄摼璺娴嬫暟鎹� } private void dealUpgrade(byte[] bs){ - String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.codeIndex, 1); + String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.UG_codeIndex, 1); if(cdPre.equals("16")){ //鍗囩骇鍔熻兘鐮� - UpHeartBeat.upHeartBeat = false ;//涓嶄笂琛屽績璺� - if(bs.length >= ProtocolConstantV206V1.lenHead2Code + 1){ - String cdSuf = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.codeIndex + 1, 1); + 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")){ //鍗囩骇鏁版嵁 - UpCd9602.upData() ; + 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() ; -- Gitblit v1.8.0