From d20d38e22b06559d758c568769017e2acf632583 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 23 四月 2025 14:06:48 +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 | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 170 insertions(+), 0 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
new file mode 100644
index 0000000..9e09ff8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java
@@ -0,0 +1,170 @@
+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.p206V2.ProtocolConstantV206V2;
+import com.dy.common.util.DateTime;
+
+@AnnotationDriver(enable = true,
+ name= ProtocolConstantV206V202404.protocolName,
+ version= ProtocolConstantV206V202404.protocolVer)
+public class DriverV202404 extends Driver {
+
+ private static String scanRootPackage = "com.dy.common.mw.protocol.p206V202404" ;
+
+ //鍦―river涓槸鍗曚緥锛岄殢Driver鐨勫崟渚嬪璞″湪鍗曠嚎绋嬩腑杩愯
+ private ParseParamsForUpV202404 upCpParams ;
+ private ParseParamsForDownV202404 downCpParams ;
+
+ private Boolean reportOrResponse_trueOrFalse = null ;
+
+ public DriverV202404(){
+ upCpParams = new ParseParamsForUpV202404() ;
+ downCpParams = new ParseParamsForDownV202404() ;
+ }
+
+ /**
+ * 娓呯┖鑷繁
+ */
+ @Override
+ public void clear() {
+ if(this.upCpParams != null){
+ this.upCpParams.clear();
+ }
+ if(this.downCpParams != null){
+ this.downCpParams.clear();
+ }
+ this.reportOrResponse_trueOrFalse = null ;
+ }
+
+ /**
+ * 鎵弿璇嗗埆鍔熻兘鐮佹敞瑙g被
+ */
+ @Override
+ public void scanAnnotationCode() throws Exception{
+ super.doScanAnnotationCode(this, ProtocolConstantV206V1.protocolName, scanRootPackage) ;
+ }
+
+ /**
+ * 瑙f瀽涓婅鏁版嵁
+ * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
+ * @param rtuAddr
+ * @param upBuffer
+ * @param callback
+ * @param upHex
+ * @return
+ */
+ @Override
+ public MidResult[] parseData(Boolean isLowPower, String rtuAddr, byte[] upBuffer, String upHex, DriverParserDataCallback callback, Object... params) {
+ this.clear();
+ boolean isFail = false ;
+ String upCode = null ;
+ Object[] codeDataGrp = {null};
+ try{
+ CommonV202404 cp = new CommonV202404() ;
+ Boolean p202404TrueUgFalse = cp.protocolType_p206TrueUgFalse(upBuffer) ;
+ cp.checkTail(upBuffer) ;
+ String crcStr = cp.checkCrc_str(upBuffer, p202404TrueUgFalse) ;
+ if(crcStr != null){
+ return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屼笂琛屾暟鎹瓹RC妫�鏌ュけ璐ワ紝" + crcStr, null))} ;
+ }
+ upCode = cp.parseCode(upBuffer) ;
+ if(upCode == null){
+ return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳戒粠涓婅鏁版嵁涓В鏋愬嚭鍔熻兘鐮侊紒", null))} ;
+ }
+ //Integer dataLen = cp.parseFrameLen(upBuffer) ;
+ Data upData = new Data() ;
+ upData.setRtuAddr(rtuAddr) ;
+ upData.setProtocol(ProtocolConstantV206V202404.protocolName);
+ upData.setProtocolVer(ProtocolConstantV206V202404.protocolVer);
+ upData.setCode(upCode) ;
+ upData.setHex(upHex) ;
+
+
+ DataV202404 dV201 = new DataV202404() ;
+ //dV201.version = cp.parseVersion(upBuffer) ;
+ dV201.rtuAddr = rtuAddr ;
+ dV201.dt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+
+ upData.setSubData(dV201) ;
+
+ this.upCpParams.setValue(ProtocolConstantV206V202404.protocolName,
+ ProtocolConstantV206V202404.protocolVer,
+ rtuAddr,
+ upCode,
+ upHex,
+ upBuffer,
+ upData);
+ CodeParse codeParse = this.getUpCodeParser(upCode) ;
+ if(codeParse == null){
+ return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笂琛屾暟鎹姛鑳界爜" + upCode + "澶勭悊绫�!", null))} ;
+ }else{
+ return codeParse.parse(isLowPower, this.upCpParams, new CodeParseCallback(){
+ @Override
+ 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, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
+ }
+ });
+ }
+
+ } catch (Exception e) {
+ 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, codeDataGrp[0]);
+ }
+ }
+
+ /**
+ * 鏋勯�犱笅琛屾暟鎹紙鍛戒护锛�
+ * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
+ * @param command 鍛戒护
+ * @return
+ */
+ @Override
+ public MidResult[] createCommand(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{
+ CodeParse codeParse = this.getDownCodeParser(commandCode) ;
+ if(codeParse == null){
+ return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笅琛屾暟鎹姛鑳界爜" + commandCode + "澶勭悊绫�!", null))} ;
+ }else{
+ return codeParse.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