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