liurunyu
2024-11-08 87a49ccc47abbb3505403d174001ceb3a2d2341d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.dy.common.mw.protocol.p206V1;
 
import com.dy.common.mw.protocol.AnnotationOnLine;
import com.dy.common.mw.protocol.OnLine;
 
@AnnotationOnLine(
        enable = true,
        protocolName = ProtocolConstantV206V1.protocolName,
        priority = ProtocolConstantV206V1.priority)
@SuppressWarnings("unused")
public class OnLineV1 implements OnLine{
 
    /**
     * 对上线数据进行分析 
     * @param upBuf 上行数据
     * @return
     */
    @Override
    public OnLineResult parse(byte[] upBuf)throws Exception {
        OnLineResult olr = new OnLineResult() ;
        CommonV1 cp = new CommonV1() ;
        Boolean[] isThis_p206Pgu = cp.isThisProtocolHead(upBuf) ;
        if(isThis_p206Pgu == null || isThis_p206Pgu.length != 2){
            //出错
            olr.result = OnLine.OnLineAction_fail ;
            olr.rtuAddr = null ;
        }else if(!isThis_p206Pgu[0].booleanValue()){
            //不是本协议数据
            olr.result = OnLine.OnLineAction_success_noMe ;
            olr.rtuAddr = null ;
        }else{
            //是本协议数据
            olr.result = OnLine.OnLineAction_success ;
            olr.rtuAddr = cp.parseRtuAddr(upBuf, isThis_p206Pgu[1]) ;
            olr.protocolName = ProtocolConstantV206V1.protocolName ;
            olr.protocolVersion = ProtocolConstantV206V1.protocolVer ;
        }
        return olr;
    }
 
}