From c42614978ff12013a1eabebd0289b27169a5784f Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期二, 06 五月 2025 17:25:56 +0800 Subject: [PATCH] 1、实现万功能token(0000-0000-1234-9876-5); 2、web端单独实现命令结果等待器,并相应修改相关部分; 3、web端实现透传命令; 4、修改一些不当注释; 5、优化一些代码。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 162 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java new file mode 100644 index 0000000..e7a25f0 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java @@ -0,0 +1,162 @@ +package com.dy.rtuMw.server.forTcp; + +import com.dy.common.mw.protocol.rtuState.RtuStatus; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.HashMap; +import java.util.Map; + +public class RtuStatusDealer { + private static Logger log = LogManager.getLogger(RtuStatusDealer.class.getName()) ; + + private static Map<String, RtuStatus> map = new HashMap<String, RtuStatus>() ; + + /** + * 寰楀埌鍏ㄩ儴鐘舵�� + * @return + */ + public static Map<String, RtuStatus> allStatus(){ + return map ; + } + /** + * 寰楀埌閮ㄥ垎鐘舵�� + * @return + */ + public static Map<String, RtuStatus> someStatus(String[] rtuAddrArrGrp){ + synchronized (map){ + Map<String, RtuStatus> rsMap = new HashMap<>(); + for(String rtuAddr : rtuAddrArrGrp){ + RtuStatus status = map.get(rtuAddr) ; + if(status != null){ + rsMap.put(rtuAddr, status) ; + } + } + return rsMap ; + } + } + /** + * 寰楀埌涓�涓猂TU鐨勭姸鎬� + * @return + */ + public static RtuStatus oneStatus(String rtuAddr){ + return map.get(rtuAddr) ; + } + + + public static void onLine(String rtuAddr, String ip, Integer port, String protocolName, Short protocolVersion){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.onLine(rtuAddr, ip, port, protocolName, protocolVersion) ; + map.put(rtuAddr, vo); + }else { + vo.onLine(rtuAddr, ip, port, protocolName, protocolVersion) ; + } + } + + public static void offLine(String rtuAddr){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.offLine(); + map.put(rtuAddr, vo); + }else { + vo.offLine(); + } + } + + public static void upData(String rtuAddr, String code, String codeName, Integer bufferLen){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.upData(code, codeName, bufferLen); + map.put(rtuAddr, vo); + }else { + vo.upData(code, codeName, bufferLen); + } + } + + public static void upAutoReport(String rtuAddr, String code, String codeName, Integer bufferLen){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.upData(code, codeName, bufferLen); + map.put(rtuAddr, vo); + }else { + vo.upData(code, codeName, bufferLen); + } + } + + public static void downData(String rtuAddr, String code, String codeName, Integer bufferLen){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.downData(code, codeName, bufferLen); + map.put(rtuAddr, vo); + }else { + vo.downData(code, codeName, bufferLen); + } + } + + public static void commandSuccess(String rtuAddr, String code, String codeName){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.commandSuccess(code, codeName); + map.put(rtuAddr, vo); + }else { + vo.commandSuccess(code, codeName); + } + } + + public static void commandFailure(String rtuAddr, String code, String codeName){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.commandFailure(code, codeName); + map.put(rtuAddr, vo); + }else { + vo.commandFailure(code, codeName); + } + } + + /** + * 鍛戒护缁撴灉鏀跺埌浜嗭紝浣嗘湭鍦ㄧ紦瀛樺尮閰嶄笂涓嬭鐨勫懡浠わ紝璇存槑涓嬭缂撳瓨鍛戒护鍥犺秴鏃惰娓呴櫎锛岃繖璇存槑鏈変釜鍛戒护鐢卞け璐ュ彉鎴愬姛浜� + * @param rtuAddr + */ + public static void commandFail2Success(String rtuAddr){ + //鏆傛椂鏃犻�昏緫 + } + + /** + * 鏀跺埌浜嗘垚鍔熷紑闃�鎶ワ紙寮�闃�鑷姤锛屽紑闃�宸ヤ綔鎶ワ紝杩滅▼寮�闃�锛堟墽琛岋級搴旂瓟绛夛紝閮借涓洪榾闂ㄦ槸寮�鍚姸鎬侊紙杩欐椂涓婃姤鐨勬暟鎹腑闃�闂ㄧ姸鎬佸彲鑳芥槸鍏抽棴锛堝洜涓烘墦寮�闃�闂ㄩ渶瑕佹椂闂达級锛夛級 + * @param rtuAddr + */ + public static void valveOpen(String rtuAddr){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.valveOpen(); + map.put(rtuAddr, vo); + }else { + vo.valveOpen(); + } + } + + /** + * 鏀跺埌浜嗘垚鍔熷叧闃�鎶ワ紙鍏抽榾鑷姤锛岃繙绋嬪叧闃�锛堟墽琛岋級搴旂瓟绛夛紝閮借涓洪榾闂ㄦ槸鍏抽棴鐘舵�侊紙杩欐椂涓婃姤鐨勬暟鎹腑闃�闂ㄧ姸鎬佸彲鑳芥槸寮�鍚紙鍥犱负鍏抽棴闃�闂ㄩ渶瑕佹椂闂达級锛夛級 + * @param rtuAddr + */ + public static void valveClose(String rtuAddr){ + RtuStatus vo = map.get(rtuAddr) ; + if(vo == null) { + vo = new RtuStatus(); + vo.valveClose(); + map.put(rtuAddr, vo); + }else { + vo.valveClose(); + } + } + +} -- Gitblit v1.8.0