|  |  |  | 
|---|
|  |  |  | this.clear(); | 
|---|
|  |  |  | boolean isFail = false ; | 
|---|
|  |  |  | String upCode = null ; | 
|---|
|  |  |  | Short protocolVersion = null ; | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | CommonV2 cp = new CommonV2() ; | 
|---|
|  |  |  | cp.checkHead(upBuffer) ; | 
|---|
|  |  |  | cp.checkTail(upBuffer) ; | 
|---|
|  |  |  | String crcStr = cp.checkCrc_str(upBuffer) ; | 
|---|
|  |  |  | if(crcStr != null){ | 
|---|
|  |  |  | return new MidResult[]{(new MidResultError(ProtocolConstantV206V2.protocolName, rtuAddr, "严重错误,上行数据CRC检查失败," + crcStr, null))} ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | rtuAddr = cp.parseRtuAddr(upBuffer) ; | 
|---|
|  |  |  | protocolVersion = cp.parseVersion(upBuffer) ; | 
|---|
|  |  |  | upCode = cp.parseCode(upBuffer) ; | 
|---|
|  |  |  | if(upCode == null){ | 
|---|
|  |  |  | return new MidResult[]{(new MidResultError(ProtocolConstantV206V2.protocolName, rtuAddr, "严重错误,未能从上行数据中解析出功能码!", null))} ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //Integer dataLen = cp.parseFrameLen(upBuffer) ; | 
|---|
|  |  |  | Data upData = new Data() ; | 
|---|
|  |  |  | upData.setRtuAddr(rtuAddr) ; | 
|---|
|  |  |  | upData.setProtocol(ProtocolConstantV206V2.protocolName); | 
|---|
|  |  |  | upData.setProtocolVer(ProtocolConstantV206V2.protocolVer); | 
|---|
|  |  |  | upData.setProtocolVer(protocolVersion); | 
|---|
|  |  |  | upData.setCode(upCode) ; | 
|---|
|  |  |  | upData.setHex(upHex) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | DataV2 dV2 = new DataV2() ; | 
|---|
|  |  |  | //dV2.version = cp.parseVersion(upBuffer) ; | 
|---|
|  |  |  | dV2.rtuAddr = rtuAddr ; | 
|---|
|  |  |  | dV2.dt = DateTime.yyyy_MM_dd_HH_mm_ss() ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | upData.setSubData(dV2) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.upCpParams.setValue(ProtocolConstantV206V2.protocolName, | 
|---|
|  |  |  | protocolVersion, | 
|---|
|  |  |  | rtuAddr, | 
|---|
|  |  |  | upCode, | 
|---|
|  |  |  | upHex, | 
|---|
|  |  |  | 
|---|
|  |  |  | public void callback(Boolean flag) { | 
|---|
|  |  |  | reportOrResponse_trueOrFalse = flag ; | 
|---|
|  |  |  | rtuAddrInData = dV2.getRtuAddr() ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void notify(NotifyInfo ...infos) { | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | this.downCpParams.setValue( | 
|---|
|  |  |  | RtuResultSendWebUrl, | 
|---|
|  |  |  | ProtocolConstantV206V2.protocolName, | 
|---|
|  |  |  | command.protocolVersion==null?ProtocolConstantV206V2.protocolVer:command.protocolVersion , | 
|---|
|  |  |  | rtuAddr, | 
|---|
|  |  |  | command.getId(), | 
|---|
|  |  |  | commandCode, | 
|---|