pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/DriverV2.java
@@ -1,9 +1,12 @@
package com.dy.common.mw.protocol.p206V2;
import com.dy.common.mw.protocol.*;
import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1;
import com.dy.common.util.DateTime;
@AnnotationDriver(enable = true, name= ProtocolConstantV206V2.protocolName)
@AnnotationDriver(enable = true,
      name= ProtocolConstantV206V2.protocolName,
      version= ProtocolConstantV206V2.protocolVer)
public class DriverV2 extends Driver {
   
   private static String scanRootPackage = "com.dy.common.mw.protocol.p206V2" ;
@@ -57,36 +60,38 @@
      this.clear();
      boolean isFail = false ;
      String upCode = null ;
      Short protocolVersion = null ;
      Object[] codeDataGrp = {null};
      try{
         CommonV2 cp = new CommonV2() ;
         cp.checkHead(upBuffer) ;
         Boolean p206TrueUgFalse = cp.protocolType_p206TrueUgFalse(upBuffer) ;
         //到此处了,p206TrueUgFalse不可能为空了
         cp.checkTail(upBuffer) ;
         String crcStr = cp.checkCrc_str(upBuffer) ;
         String crcStr = cp.checkCrc_str(upBuffer, p206TrueUgFalse) ;
         if(crcStr != null){
            return new MidResult[]{(new MidResultError(ProtocolConstantV206V2.protocolName, rtuAddr, "严重错误,上行数据CRC检查失败," + crcStr, null))} ;
         }
         rtuAddr = cp.parseRtuAddr(upBuffer) ;
         upCode = cp.parseCode(upBuffer) ;
         protocolVersion = cp.parseVersion(upBuffer) ;
         upCode = cp.parseCode(upBuffer, p206TrueUgFalse) ;
         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, 
@@ -98,9 +103,14 @@
         }else{
            return codeParse.parse(isLowPower, this.upCpParams, new CodeParseCallback(){
               @Override
               public void callback(Boolean flag) {
               public void callback(Boolean flag, Object codeData) {
                  reportOrResponse_trueOrFalse = flag ;
                  rtuAddrInData = dV2.getRtuAddr() ;
                  codeDataGrp[0] = codeData ;
               }
               @Override
               public void notify(NotifyInfo ...infos) {
                  notify.notify(rtuAddr, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
               }
            });
         }
@@ -109,7 +119,7 @@
         isFail = true ;
         return new MidResult[]{(new MidResultError(ProtocolConstantV206V2.protocolName, rtuAddr, "严重错误,分析Rtu数据出错!数据为:" + upHex + (e.getMessage() == null?"":(",出错信息:" + e.getMessage())), e))} ;
      } finally{
         callback.callback(rtuAddr, upCode, CodeV2.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr);
         callback.callback(rtuAddr, upCode, CodeV2.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr, codeDataGrp[0]);
      }
   }
@@ -136,6 +146,7 @@
         this.downCpParams.setValue(
               RtuResultSendWebUrl,
               ProtocolConstantV206V2.protocolName,
               command.protocolVersion==null?ProtocolConstantV206V2.protocolVer:command.protocolVersion ,
               rtuAddr, 
               command.getId(),
               commandCode,