zhubaomin
2024-11-22 44180ee779c038ad628fcd847a0b8e2ca9b6f4ee
pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
New file
@@ -0,0 +1,56 @@
package com.dy.simRtu.tcpClient.downData;
import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1;
import com.dy.common.util.ByteUtil;
import com.dy.simRtu.tcpClient.upData.*;
/**
 * @Author: liurunyu
 * @Date: 2024/11/18 10:57
 * @Description 中间件的下行数据
 */
public class DownData {
    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")){
                    //升级数据
                    UpCd9602.upData() ;
                }else if(cd.equals("1603")){
                    //升级校验
                    UpCd9603.upData() ;
                }else if(cd.equals("1600")){
                    //升级复位
                    UpCd9600.upData() ;
                    UpHeartBeat.upHeartBeat = true ;//不上行心跳
                }
            }
        }
    }
}