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