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