From 186aac796d81fd1799c9503558c1081c5102ab74 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 27 二月 2025 17:18:11 +0800
Subject: [PATCH] 根据RTU协议修改内容,将开关阀类型加入上报数据中;
---
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