liurunyu
2025-04-02 84864ae37ed1237da21bc36f01a641de4b01cfa8
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
@@ -3,7 +3,9 @@
import com.dy.common.mw.protocol.*;
import com.dy.common.util.DateTime;
@AnnotationDriver(enable = true, name= ProtocolConstantV206V1.protocolName)
@AnnotationDriver(enable = true,
      name= ProtocolConstantV206V1.protocolName,
      version= ProtocolConstantV206V1.protocolVer)
public class DriverV1 extends Driver {
   
   private static String scanRootPackage = "com.dy.common.mw.protocol.p206V1" ;
@@ -57,6 +59,7 @@
      this.clear();
      boolean isFail = false ;
      String upCode = null ;
      Object[] codeDataGrp = {null};
      try{
         CommonV1 cp = new CommonV1() ;
         Boolean p206TrueUgFalse = cp.protocolType_p206TrueUgFalse(upBuffer) ;
@@ -98,23 +101,24 @@
         }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 = dV1.getRtuAddr() ;
                  codeDataGrp[0] = codeData ;
               }
               @Override
               public void notify(NotifyInfo ...infos) {
                  notify.notify(rtuAddr, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
               }
            });
         }
      } catch (Exception e) {
         isFail = true ;
         return new MidResult[]{(new MidResultError(ProtocolConstantV206V1.protocolName, rtuAddr, "严重错误,分析Rtu数据出错!数据为:" + upHex + (e.getMessage() == null?"":(",出错信息:" + e.getMessage())), e))} ;
      } finally{
         if(upCode != null){
            //CRC验证失败时,upCode为null,此时不进行回调
            callback.callback(rtuAddr, upCode, CodeV1.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr);
            callback.callback(rtuAddr, upCode, CodeV1.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr, codeDataGrp[0]);
         }
      }
   }