package com.dy.common.mw.protocol.p206V2; import com.dy.common.mw.protocol.AnnotationOnLine; import com.dy.common.mw.protocol.OnLine; @AnnotationOnLine( enable = true, protocolName = ProtocolConstantV206V2.protocolName, protocolVersion = ProtocolConstantV206V2.protocolVer, priority = ProtocolConstantV206V2.priority) @SuppressWarnings("unused") public class OnLineV2 implements OnLine{ /** * 对上线数据进行分析 * @param upBuf 上行数据 * @return */ @Override public OnLineResult parse(byte[] upBuf)throws Exception { OnLineResult olr = new OnLineResult() ; CommonV2 cp = new CommonV2() ; 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) ; olr.protocolName = ProtocolConstantV206V2.protocolName ; olr.protocolVersion = cp.parseVersion(upBuf) ; } return olr; } }