From 7df8ed14d605bcc731341ff12349bc117714b69e Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期四, 17 四月 2025 16:18:24 +0800 Subject: [PATCH] 优化代码 --- 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