From 7f3cae29516a35e85e4b6fc02ec655882d4c2538 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 08 五月 2025 11:55:24 +0800 Subject: [PATCH] 1、测控一体阀协议功能码50补充实现; 2、RTU模拟器模拟实现50、91、92功能码上报; 3、remote模块:完善透传命令实现,完善接收通信中间件返回命令结果实现。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java | 88 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 88 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..7f64bf3 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java @@ -0,0 +1,88 @@ +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){ + String cdPre = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1.codeIndex, 1); + if(cdPre.equals("50")){ + UpCd50.upData() ; + }else if(cdPre.equals("66")){ + UpCd66.upData() ; + }else if(cdPre.equals("91")){ + UpCd91.upData() ; + }else if(cdPre.equals("92")){ + UpCd92.upData() ; + } + } + 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