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