New file |
| | |
| | | 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 ;//不上行心跳 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |