From bda423b1aae1d5322116511651ae03a54cdcd231 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 26 十一月 2024 17:25:39 +0800
Subject: [PATCH] 1、几个测试模块系统的log4j.xml配置中的编码修改; 2、RTU升级模拟器增加命令行设置服务端IP和端口功能; 3、应王江海要求,井电双控协议中也实现远程升级功能,因井电双控协议、阀控器协议不同,而双方协议中的升级子协议相同,所以通信中间件做增量开发、适应性修改,以适应这种混合协议情况,同时也提高通信中间件运行效率。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java |   68 ++++++++++++++++++++++++---------
 1 files changed, 49 insertions(+), 19 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java
index a8815d9..81bc5b7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java
@@ -6,35 +6,53 @@
 import java.util.Map;
 
 public class ProtocolCache {
-	
+
 	//鏈郴缁熶腑锛孌river鍦ㄥ崟绾跨▼涓繍琛岋紝鎵�浠ュ彧鐢ㄤ竴涓疄渚�
 	private static final HashMap<String, Driver> drivers = new HashMap<>() ;
-    //娉ㄨВ涓庡鐞嗙被鐨勬槧灏�
+	//娉ㄨВ涓庡鐞嗙被鐨勬槧灏�
 	private static final HashMap<String, AnnotationDriverVo> driverMap = new HashMap<>() ;
 	private static final HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = new HashMap<>() ;
 	private static final HashMap<String, AnnotationOnLineVo> onLineMap = new HashMap<>() ;
-	
+
 
 	/**
 	 * 鍦ㄥ崟绾跨▼鐜涓繍琛�
 	 * 閫氳繃鍗忚椹卞姩鐨勭被鍚嶏紝寰楀埌绫诲崟渚�
 	 * @param protocolName 鍗忚鍚嶇О
+	 * @param protocolVersion 鍗忚鐗堟湰鍙�
 	 * @return 椹卞姩
 	 * @throws Exception 寮傚父
 	 */
-	public static Driver getDriver(String protocolName) throws Exception{
-		Driver dri = drivers.get(protocolName);
+	public static Driver getDriver(String protocolName, short protocolVersion) throws Exception{
+		Driver dri = drivers.get(protocolName + protocolVersion) ;
 		if(dri == null){
-			AnnotationDriverVo vo = driverMap.get(protocolName) ;
+			AnnotationDriverVo vo = driverMap.get(protocolName + protocolVersion) ;
 			if(vo != null && vo.clazz != null){
 				dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance();
-				//dri = (Driver)vo.clazz.newInstance() ;
-				drivers.put(protocolName, dri) ;
+				drivers.put(protocolName + protocolVersion, dri) ;
 			}
 		}
 		return dri ;
 	}
-	
+	/**
+	 * 鍦ㄥ崟绾跨▼鐜涓繍琛�
+	 * 閫氳繃鍗忚椹卞姩鐨勭被鍚嶏紝寰楀埌绫诲崟渚�
+	 * @param protocolNameVersion 鍗忚鍚嶇О鍜岀増鏈彿
+	 * @return 椹卞姩
+	 * @throws Exception 寮傚父
+	 */
+	public static Driver getDriver(String protocolNameVersion) throws Exception{
+		Driver dri = drivers.get(protocolNameVersion) ;
+		if(dri == null){
+			AnnotationDriverVo vo = driverMap.get(protocolNameVersion) ;
+			if(vo != null && vo.clazz != null){
+				dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance();
+				drivers.put(protocolNameVersion, dri) ;
+			}
+		}
+		return dri ;
+	}
+
 	/**
 	 * 寰楀埌椹卞姩鐨勬暟閲忥紝鍗充腑闂翠欢鏀寔鐨勫崗璁暟閲�
 	 * @return 椹卞姩鎬绘暟
@@ -46,7 +64,7 @@
 			return drivers.size() ;
 		}
 	}
-	
+
 	/**
 	 * 寰楀埌绗竴涓┍鍔�
 	 * @return 椹卞姩
@@ -79,13 +97,25 @@
 		return onLineMap;
 	}
 
-	/*
-	public static void main(String[] args){
-		HashMap<String, Integer> mp = new HashMap<>() ;
-		mp.put("a1", 1) ;
-		mp.put("a2", 2) ;
-		List<String> list = new ArrayList<>(mp.keySet()) ;
-		System.out.println(list);
+	protected AnnotationDriverVo getAnnotationDriver(String protocolName, Short protocolVersion){
+		return driverMap.get(protocolName + "" + protocolVersion) ;
 	}
-	*/
-}
+
+	protected static AnnotationPrefixedDataAvailableVo getAnnotationPrefixedDataAvailable(String protocolName, Short protocolVersion){
+		return prefixedDataAvailableMap.get(protocolName + "" + protocolVersion) ;
+	}
+
+	protected static AnnotationOnLineVo getAnnotationOnLine(String protocolName, Short protocolVersion){
+		return onLineMap.get(protocolName + "" + protocolVersion) ;
+	}
+
+    /*
+    public static void main(String[] args){
+        HashMap<String, Integer> mp = new HashMap<>() ;
+        mp.put("a1", 1) ;
+        mp.put("a2", 2) ;
+        List<String> list = new ArrayList<>(mp.keySet()) ;
+        System.out.println(list);
+    }
+    */
+}
\ No newline at end of file

--
Gitblit v1.8.0