From 4c01b8d838c464f2246447120835ba189438aa43 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 03 四月 2025 11:31:12 +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 |   71 +++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 28 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 08c5eb2..9e09ff8 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,40 +1,48 @@
 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;
 
-import java.net.URI;
-import java.net.URL;
-
-@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." ;
+	private static String scanRootPackage = "com.dy.common.mw.protocol.p206V202404" ;
 	
 	//鍦―river涓槸鍗曚緥锛岄殢Driver鐨勫崟渚嬪璞″湪鍗曠嚎绋嬩腑杩愯
 	private ParseParamsForUpV202404 upCpParams ;
 	private ParseParamsForDownV202404 downCpParams ;
 	
 	private Boolean reportOrResponse_trueOrFalse = null ;
-	private String rtuAddrInData = 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{
-		if(!scanRootPackage.endsWith(".")){
-			scanRootPackage += "." ;
-		}
-		URL url = this.getClass().getResource("/" + scanRootPackage.replace('.', '/'));
-		URI uri = new URI(url.toString());  
-		super.doScanAnnotationCode(this, ProtocolConstantV206V202404.protocolName, uri, scanRootPackage) ;
+		super.doScanAnnotationCode(this, ProtocolConstantV206V1.protocolName, scanRootPackage) ;
 	}
 
 	/**
@@ -48,18 +56,18 @@
 	 */
 	@Override
 	public MidResult[] parseData(Boolean isLowPower, String rtuAddr, byte[] upBuffer, String upHex, DriverParserDataCallback callback, Object... params) {
-		reportOrResponse_trueOrFalse = null ;
+		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))} ;
@@ -68,19 +76,20 @@
 			Data upData = new Data() ;
 			upData.setRtuAddr(rtuAddr) ;
 			upData.setProtocol(ProtocolConstantV206V202404.protocolName);
+			upData.setProtocolVer(ProtocolConstantV206V202404.protocolVer);
 			upData.setCode(upCode) ;
 			upData.setHex(upHex) ;
 			
 			
-			DataV202404 dV1_0_1 = new DataV202404() ;
-			//dV1_0_1.version = cp.parseVersion(upBuffer) ;
-			dV1_0_1.rtuAddr = rtuAddr ;
-			dV1_0_1.dt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+			DataV202404 dV201 = new DataV202404() ;
+			//dV201.version = cp.parseVersion(upBuffer) ;
+			dV201.rtuAddr = rtuAddr ;
+			dV201.dt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
 			
-			upData.setSubData(dV1_0_1) ;
+			upData.setSubData(dV201) ;
 			
-			this.upCpParams.clear();
-			this.upCpParams.setValue(ProtocolConstantV206V202404.protocolName, 
+			this.upCpParams.setValue(ProtocolConstantV206V202404.protocolName,
+					ProtocolConstantV206V202404.protocolVer,
 					rtuAddr, 
 					upCode,
 					upHex, 
@@ -92,9 +101,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 = dV1_0_1.getRtuAddr() ;
+						//rtuAddrInData = dV201.getRtuAddr() ;
+						codeDataGrp[0] = codeData ;
+					}
+					@Override
+					public void notify(NotifyInfo ...infos) {
+						notify.notify(rtuAddr, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
 					}
 				});
 			}
@@ -103,7 +117,7 @@
 			isFail = true ;
 			return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屽垎鏋怰tu鏁版嵁鍑洪敊锛佹暟鎹负锛�" + upHex + (e.getMessage() == null?"":("锛屽嚭閿欎俊鎭細" + e.getMessage())), e))} ;
 		} finally{
-			callback.callback(rtuAddr, upCode, upHex, reportOrResponse_trueOrFalse, isFail, rtuAddrInData);
+			callback.callback(rtuAddr, upCode, CodeV202404.getCodeName(upCode), upHex, reportOrResponse_trueOrFalse, isFail, rtuAddr, codeDataGrp[0]);
 		}
 	}
 
@@ -115,6 +129,7 @@
 	 */
 	@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))} ;
@@ -126,10 +141,10 @@
 		try {
 			String commandCode = command.getCode() ;
 			
-			this.downCpParams.clear();
 			this.downCpParams.setValue(
 					RtuResultSendWebUrl,
-					ProtocolConstantV206V202404.protocolName, 
+					ProtocolConstantV206V202404.protocolName,
+					command.protocolVersion==null?ProtocolConstantV206V202404.protocolVer:command.protocolVersion,
 					rtuAddr, 
 					command.getId(),
 					commandCode, 

--
Gitblit v1.8.0