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