From c2976b80e8850be2d28dc2132c6659856b871f3c Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期四, 08 五月 2025 21:10:42 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 8 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java index 8069bf4..3250f98 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java @@ -1,10 +1,12 @@ package com.dy.common.mw.protocol.p206V202404; import com.dy.common.mw.protocol.*; -import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1; +import com.dy.common.mw.protocol.p206V202404.parse.TransparentDown; import com.dy.common.util.DateTime; -@AnnotationDriver(name= ProtocolConstantV206V202404.protocolName) +@AnnotationDriver(enable = true, + name= ProtocolConstantV206V202404.protocolName, + version= ProtocolConstantV206V202404.protocolVer) public class DriverV202404 extends Driver { private static String scanRootPackage = "com.dy.common.mw.protocol.p206V202404" ; @@ -39,7 +41,7 @@ */ @Override public void scanAnnotationCode() throws Exception{ - super.doScanAnnotationCode(this, ProtocolConstantV206V1.protocolName, scanRootPackage) ; + super.doScanAnnotationCode(this, ProtocolConstantV206V202404.protocolName, scanRootPackage) ; } /** @@ -56,15 +58,15 @@ this.clear(); boolean isFail = false ; String upCode = null ; + Object[] codeDataGrp = {null}; try{ CommonV202404 cp = new CommonV202404() ; - cp.checkHead(upBuffer) ; + Boolean p202404TrueUgFalse = cp.protocolType_p206TrueUgFalse(upBuffer) ; cp.checkTail(upBuffer) ; - String crcStr = cp.checkCrc_str(upBuffer) ; + String crcStr = cp.checkCrc_str(upBuffer, p202404TrueUgFalse) ; if(crcStr != null){ return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屼笂琛屾暟鎹瓹RC妫�鏌ュけ璐ワ紝" + crcStr, null))} ; } - rtuAddr = cp.parseRtuAddr(upBuffer) ; upCode = cp.parseCode(upBuffer) ; if(upCode == null){ return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳戒粠涓婅鏁版嵁涓В鏋愬嚭鍔熻兘鐮侊紒", null))} ; @@ -98,12 +100,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 = dV201.getRtuAddr() ; + codeDataGrp[0] = codeData ; } @Override public void notify(NotifyInfo ...infos) { + notify.notify(rtuAddr, ProtocolConstantV206V202404.protocolName, ProtocolConstantV206V202404.protocolVer, infos); } }); } @@ -112,7 +116,7 @@ isFail = true ; return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屽垎鏋怰tu鏁版嵁鍑洪敊锛佹暟鎹负锛�" + upHex + (e.getMessage() == null?"":("锛屽嚭閿欎俊鎭細" + e.getMessage())), e))} ; } finally{ - callback.callback(rtuAddr, upCode, CodeV202404.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr); + callback.callback(rtuAddr, upCode, CodeV202404.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr, codeDataGrp[0]); } } @@ -162,4 +166,44 @@ } + /** + * 鏋勯�犱笅琛岄�忎紶鏁版嵁锛堝懡浠わ級 + * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯 + * @param command 鍛戒护 + * @return MidResult[] + */ + @Override + public MidResult[] transparentCommand(Boolean isLowPower, Command command, Object... params){ + this.clear(); + String RtuResultSendWebUrl = command.getRtuResultSendWebUrl() ; + if(RtuResultSendWebUrl == null || RtuResultSendWebUrl.trim().equals("")){ + return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, null, "涓ラ噸閿欒锛屽懡浠や腑rtu杩斿洖鍛戒护缁撴灉鍙戝悜鐩殑鍦皐eb URL涓虹┖锛屼笉鑳芥瀯寤轰换浣曞懡浠わ紒", null))} ; + } + String rtuAddr = command.getRtuAddr() ; + if(rtuAddr == null || rtuAddr.trim().equals("")){ + return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, null, "涓ラ噸閿欒锛屽懡浠や腑Rtu鍦板潃涓虹┖锛屼笉鑳芥瀯寤轰换浣曞懡浠わ紒", null))} ; + } + try { + String commandCode = command.getCode() ; + + this.downCpParams.setValue( + RtuResultSendWebUrl, + ProtocolConstantV206V202404.protocolName, + command.protocolVersion==null?ProtocolConstantV206V202404.protocolVer:command.protocolVersion, + rtuAddr, + command.getId(), + commandCode, + command.getParam(), + command.getAttachment()); + + if(commandCode == null){ + return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屽懡浠や腑鍔熻兘鐮佷负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ; + }else{ + return new TransparentDown().parse(isLowPower, this.downCpParams, null); + } + } catch (Exception e) { + return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾瀯閫犱笅琛屾暟鎹嚭閿欙紒鍛戒护涓猴細" + command.toString(), e))} ; + } + } + } \ No newline at end of file -- Gitblit v1.8.0