From 883ce2e1348edb3f4dcd058a0ee37aff40a44586 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期三, 31 七月 2024 11:44:55 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoDeal.java           |   44 +++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoVo.java             |   52 +++++++++++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPool.java                                    |    7 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientAmountStatistics.java                      |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java                   |   23 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java                         |   12 +++
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java                 |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java                                 |   16 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAmountStatistics.java                      |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java |    6 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java               |   23 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java            |    3 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml                                              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java                              |   22 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java                 |   12 +++
 15 files changed, 225 insertions(+), 4 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPool.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPool.java
index 84e72eb..32537ae 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPool.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPool.java
@@ -10,6 +10,13 @@
 	 */
 	public interface Pool{
 		/**
+		 * 绾跨▼姹犱腑绾跨▼涓暟
+		 * @return
+		 */
+		public Integer size() ;
+		public Integer maxThread() ;
+		public Integer minThread() ;
+		/**
 		 * 鎶婃墍瑕佹墽琛岀殑宸ヤ綔瀵硅薄瀹炰緥鏀惧叆绾跨▼姹犱腑
 		 * @param job ThreadJob 宸ヤ綔瀵硅薄瀹炰緥
 		 * @throws Exception 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java
index 15cb864..ba8154a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java
@@ -131,6 +131,22 @@
 				this.monitorThread.start() ;
 			}
 		}
+		/**
+		 * 绾跨▼姹犱腑绾跨▼涓暟
+		 * @return
+		 */
+		@Override
+		public Integer size() {
+			return currNum ;
+		}
+		@Override
+		public Integer maxThread() {
+			return maxNum ;
+		}
+		@Override
+		public Integer minThread() {
+			return minNum ;
+		}
 
 		/**
 		 * 鎶婃墍瑕佹墽琛岀殑宸ヤ綔瀵硅薄瀹炰緥鏀惧叆绾跨▼姹犱腑
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java
index f7c34ee..b20cbca 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java
@@ -5,7 +5,27 @@
 
 	private static ThreadPool.Pool pool_short ;//鐭伐浣滀换鍔$嚎绋嬫睜锛岀嚎绋嬪伐浣滅敤鏃惰緝鐭�
 	private static ThreadPool.Pool pool_long ;//闀垮伐浣滀换鍔$嚎绋嬫睜锛岀嚎绋嬪伐浣滅敤鏃惰緝闀�
-	
+
+
+	public final static Integer[] pool_short_state(){
+		Integer shortCurThread = 0 ;//鐭嚎绋嬫睜褰撳墠绾跨▼鏁�
+		Integer shortMaxThread = 0 ;//鐭嚎绋嬫睜鏈�澶х嚎绋嬫暟
+		Integer shortMinThread = 0 ;//鐭嚎绋嬫睜鏈�灏忕嚎绋嬫暟
+		shortCurThread = pool_short.size() ;
+		shortMaxThread = pool_short.maxThread() ;
+		shortMinThread = pool_short.minThread() ;
+		return new Integer[]{shortCurThread, shortMaxThread, shortMinThread} ;
+	}
+
+	public final static Integer[] pool_long_state(){
+		Integer longCurThread = 0 ;//鐭嚎绋嬫睜褰撳墠绾跨▼鏁�
+		Integer longMaxThread = 0 ;//鐭嚎绋嬫睜鏈�澶х嚎绋嬫暟
+		Integer longMinThread = 0 ;//鐭嚎绋嬫睜鏈�灏忕嚎绋嬫暟
+		longCurThread = pool_long.size() ;
+		longMaxThread = pool_long.maxThread() ;
+		longMinThread = pool_long.minThread() ;
+		return new Integer[]{longCurThread, longMaxThread, longMinThread} ;
+	}
 	/**
 	 * 鍒濆鍖栫嚎绋嬫睜
 	 * @param poolName 绾跨▼姹犲拰绾跨▼鍚嶇О
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientAmountStatistics.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientAmountStatistics.java
index dfdbe82..3a61efd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientAmountStatistics.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientAmountStatistics.java
@@ -5,7 +5,7 @@
 /**
  * @Author: liurunyu
  * @Date: 2024/7/24 17:09
- * @Description
+ * @Description 浠ョ敤姘存埛缁熻鐢ㄦ按閲�
  */
 @Data
 public class VoClientAmountStatistics {
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAmountStatistics.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAmountStatistics.java
index 508e4ae..429df09 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAmountStatistics.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAmountStatistics.java
@@ -5,7 +5,7 @@
 /**
  * @Author: liurunyu
  * @Date: 2024/7/24 14:16
- * @Description 浠ュ彇姘村彛缁熻婕忔崯
+ * @Description 浠ュ彇姘村彛缁熻鍙栨按閲�
  */
 @Data
 public class VoIntakeAmountStatistics {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
index b4fc611..bae9ac6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
@@ -25,6 +25,29 @@
 		return instance ;
 	}
 
+
+	public static Integer[] info(){
+		Integer comTotalDown = 0 ;//缂撳瓨鐨勪笅琛屽懡浠ゆ�绘暟
+		Integer comNoResTotalDownByOnLine = 0 ;//RTU鍦ㄧ嚎锛屼絾瀵瑰叾涓嬭鍛戒护鏈敹鍒板簲绛旂殑鎬绘暟
+		Integer comNoResTotalDownByOffLine = 0 ;//RTU绂荤嚎锛屼絾瀵瑰叾涓嬭鍛戒护鏈敹鍒板簲绛旂殑鎬绘暟
+		MidResultToRtu res ;
+		TcpDownCommandObj obj ;
+		Node node = cacheQueue.getFirstNode() ;
+		while(node != null && node.obj != null){
+			obj = (TcpDownCommandObj)node.obj;
+			res = obj.result ;
+			if(!obj.onceReceivedResult){
+				comTotalDown ++ ;
+				if(TcpSessionCache.isConnect(res.rtuAddr)){
+					comNoResTotalDownByOnLine ++ ;
+				}else{
+					comNoResTotalDownByOffLine ++ ;
+				}
+			}
+		}
+		return new Integer[]{comTotalDown, comNoResTotalDownByOnLine, comNoResTotalDownByOffLine} ;
+	}
+
 	/**
 	 * 缂撳瓨鍛戒护
 	 * @param result
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
index bf28087..c7aff2f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -24,6 +24,29 @@
 	 */
 	private static HashMap<String, TcpSession> sessionTable = new HashMap<String, TcpSession>() ;
 
+
+	/**
+	 * 寰楀埌淇℃伅
+	 * @return
+	 */
+	public static Integer[] info(){
+		Integer rtuTotalConnect = 0 ;//宸茬粡杩炴帴杩囦腑闂翠欢鐨凴TU鎬绘暟锛堝寘鎷湪绾夸笌绂荤嚎鐨勶級
+		Integer rtuTotalOnLine = 0 ;//鍦ㄧ嚎RTU鎬绘暟
+		Integer rtuTotalOffLine = 0 ;//绂荤嚎RTU鎬绘暟
+		synchronized (sessionTable){
+			rtuTotalConnect = sessionTable.size() ;
+			Collection<TcpSession> col = sessionTable.values() ;
+			for(TcpSession se : col){
+				if(se.ioSession.isConnected()){
+					rtuTotalOnLine ++ ;
+				}else{
+					rtuTotalOffLine ++ ;
+				}
+			}
+		}
+		return new Integer[] {rtuTotalConnect, rtuTotalOnLine, rtuTotalOffLine} ;
+	}
+
 	/**
 	 * 鍏抽棴鎵�鏈夌綉缁滆繛鎺�
 	 */
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
index 9ae2f68..a2dfc3a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -29,6 +29,8 @@
             return this.stopTcpSv(com) ;
         }else if(code.equals(CodeLocal.recoverTcpSv)){
             return this.recoverTcpSv(com) ;
+        }else if(code.equals(CodeLocal.mwState)){
+            return this.mwInfo(com) ;
         }
         return ReturnCommand.errored("鍑洪敊锛屾敹鍒板唴閮ㄥ懡浠ょ殑鍔熻兘鐮佷笉鑳借瘑鍒紒", com.getId(), com.getCode()) ;
     }
@@ -84,4 +86,14 @@
 
 
 
+    /**
+     * 鏌ヨ閫氫俊涓棿浠惰繍琛屾儏鍐�
+     * @throws Exception
+     */
+    private Command mwInfo(Command command) throws Exception{
+        MwInfoVo mwInfo = new MwInfoDeal().deal() ;
+        return ReturnCommand.successed("鏌ヨ閫氫俊涓棿浠惰繍琛屾儏鍐�", command.getId(), command.getCode(), mwInfo) ;
+    }
+
+
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
index 49aa69d..2c3e0fa 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
@@ -9,6 +9,9 @@
 	public static final String allProtocols = "LCD0100" ;//鏌ヨ鎵�鏈夊崗璁厤缃�
 
 	public static final String stopTcpSv = "LCD0110" ;//鍋滄TCP鏈嶅姟锛屼笉鍐嶆帴鍏ユ柊鐨凾CP杩炴帴锛屽凡缁廡CP杩炴帴鐨勫叏閮ㄦ柇杩炴帴
+
 	public static final String recoverTcpSv = "LCD0112" ;//閲嶅惎TCP鏈嶅姟锛屾帴鍏ユ柊鐨凾CP杩炴帴
 
+	public static final String mwState = "LCD0200" ;//寰楀埌閫氫俊涓棿浠惰繍琛屼俊鎭�
+
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoDeal.java
new file mode 100644
index 0000000..43658e2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoDeal.java
@@ -0,0 +1,44 @@
+package com.dy.rtuMw.server.local.localProtocol;
+
+import com.dy.common.threadPool.TreadPoolFactory;
+import com.dy.rtuMw.server.forTcp.TcpDownCommandCache;
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
+import com.dy.rtuMw.server.rtuData.RtuDataCache;
+import com.dy.rtuMw.server.rtuData.TaskPool;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/29 11:07
+ * @Description
+ */
+public class MwInfoDeal {
+
+    public MwInfoVo deal(){
+        MwInfoVo vo = new MwInfoVo() ;
+        Integer[] info = TcpSessionCache.info() ;
+        vo.rtuTotalConnect = info[0] ;
+        vo.rtuTotalOnLine = info[1] ;
+        vo.rtuTotalOffLine = info[2] ;
+
+        info = TcpDownCommandCache.info() ;
+        vo.comTotalDown = info[0] ;
+        vo.comNoResTotalDownByOnLine = info[1] ;
+        vo.comNoResTotalDownByOffLine = info[2] ;
+
+        vo.dataTotalUp = RtuDataCache.size() ;
+
+        info = TreadPoolFactory.pool_short_state() ;
+        vo.shortCurThread = info[0] ;
+        vo.shortMaxThread = info[1] ;
+        vo.shortMinThread = info[2] ;
+
+        info = TreadPoolFactory.pool_long_state() ;
+        vo.longCurThread = info[0] ;
+        vo.longMaxThread = info[1] ;
+        vo.longMinThread = info[2] ;
+
+        vo.taskTreePoolTotalInstance = TaskPool.totalTasks() ;
+
+        return vo ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoVo.java
new file mode 100644
index 0000000..9a9f330
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/MwInfoVo.java
@@ -0,0 +1,52 @@
+package com.dy.rtuMw.server.local.localProtocol;
+
+import lombok.Data;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/29 10:54
+ * @Description
+ */
+@Data
+public class MwInfoVo {
+    public Integer rtuTotalConnect ;//宸茬粡杩炴帴杩囦腑闂翠欢鐨凴TU鎬绘暟锛堝寘鎷湪绾夸笌绂荤嚎鐨勶級
+    public Integer rtuTotalOnLine ;//鍦ㄧ嚎RTU鎬绘暟
+    public Integer rtuTotalOffLine ;//绂荤嚎RTU鎬绘暟
+
+    public Integer comTotalDown ;//缂撳瓨鐨勪笅琛屽懡浠ゆ�绘暟
+    public Integer comNoResTotalDownByOnLine;//RTU鍦ㄧ嚎锛屼絾瀵瑰叾涓嬭鍛戒护鏈敹鍒板簲绛旂殑鎬绘暟
+    public Integer comNoResTotalDownByOffLine;//RTU绂荤嚎锛屼絾瀵瑰叾涓嬭鍛戒护鏈敹鍒板簲绛旂殑鎬绘暟
+
+    public Integer dataTotalUp ;//涓婅鏁版嵁鍦ㄧ紦瀛樹腑杩樻湭澶勭悊鐨勬�绘暟
+
+    public Integer shortCurThread = 0 ;//鐭嚎绋嬫睜褰撳墠绾跨▼鏁�
+    public Integer shortMaxThread = 0 ;//鐭嚎绋嬫睜鏈�澶х嚎绋嬫暟
+    public Integer shortMinThread = 0 ;//鐭嚎绋嬫睜鏈�灏忕嚎绋嬫暟
+    public Integer longCurThread = 0 ;//闀跨嚎绋嬫睜褰撳墠绾跨▼鏁�
+    public Integer longMaxThread = 0 ;//闀跨嚎绋嬫睜鏈�澶х嚎绋嬫暟
+    public Integer longMinThread = 0 ;//闀跨嚎绋嬫睜鏈�灏忕嚎绋嬫暟
+
+    public Integer taskTreePoolTotalInstance = 0 ;//浠诲姟鏍戞睜浠诲姟瀹炰緥鎬绘暟
+
+    public String toString(){
+        StringBuilder sb = new StringBuilder() ;
+        sb.append("閫氫俊涓棿浠惰繍琛屼俊鎭�:\n");
+        sb.append("   杩炴帴RTU鎬绘暟锛�" + rtuTotalConnect + "\n");
+        sb.append("      鍦ㄧ嚎RTU鎬绘暟锛�" + rtuTotalOnLine + "\n");
+        sb.append("      绂荤嚎RTU鎬绘暟锛�" + rtuTotalOffLine + "\n");
+        sb.append("   涓嬭鏈簲绛斿懡浠ゆ�绘暟锛�" + comTotalDown + "\n");
+        sb.append("      鍦ㄧ嚎RTU鏈簲绛斿懡浠ゆ�绘暟锛�" + comNoResTotalDownByOnLine + "\n");
+        sb.append("      绂荤嚎RTU鏈簲绛斿懡浠ゆ�绘暟锛�" + comNoResTotalDownByOffLine + "\n");
+        sb.append("   涓婅鏈鐞嗘暟鎹�绘暟锛�" + dataTotalUp + "\n");
+        sb.append("   鐭嚎绋嬫睜褰撳墠绾跨▼鏁帮細" + shortCurThread + "\n");
+        sb.append("      鐭嚎绋嬫睜閰嶇疆鏈�澶х嚎绋嬫暟锛�" + shortMaxThread + "\n");
+        sb.append("      鐭嚎绋嬫睜閰嶇疆鏈�灏忕嚎绋嬫暟锛�" + shortMinThread + "\n");
+        sb.append("   闀跨嚎绋嬫睜褰撳墠绾跨▼鏁帮細" + longCurThread + "\n");
+        sb.append("      闀跨嚎绋嬫睜閰嶇疆鏈�澶х嚎绋嬫暟锛�" + longMaxThread + "\n");
+        sb.append("      闀跨嚎绋嬫睜閰嶇疆鏈�灏忕嚎绋嬫暟锛�" + longMinThread + "\n");
+        sb.append("   浠诲姟鏍戞睜浠诲姟瀹炰緥鎬绘暟锛�" + taskTreePoolTotalInstance + "\n");
+        sb.append("\n");
+
+        return sb.toString() ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java
index bd4f5ed..5bceac7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java
@@ -12,12 +12,22 @@
 	private static Logger log = LogManager.getLogger(TaskPool.class.getName()) ;
 	
 	private static List<TaskSurpport> tasks = new ArrayList<TaskSurpport>() ;
+
+	private static Integer taskTotal = 0 ;
 	
 	private static TreeConfig taskTreeConf ;
 	
 	
 	public static void setTaskTreeCofig(TreeConfig conf){
 		taskTreeConf = conf ;
+	}
+
+	/**
+	 * 寰楀埌浠诲姟鏍戝疄渚嬫�绘暟
+	 * @return
+	 */
+	public static Integer totalTasks() {
+		return taskTotal ;
 	}
 	
 	
@@ -39,6 +49,8 @@
 				} finally {
 					if(t == null){
 						log.error("瀹炰緥鍖栦笂琛屾暟鎹鐞嗕换鍔″璞″け璐ワ紒" );
+					}else{
+						taskTotal++ ;
 					}
 				}
 			}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml
index 58f8a1d..29e1d44 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml
@@ -4,5 +4,5 @@
 
 	<base rtuAddr="532328059995" onlyOneHeartBeat="true" icCardAddr="3B7D1E1A" icCardNo="61181622830147821"></base>
 	<!-- -->
-	<tcpCl mwServerIp="192.168.40.182" mwServerPort="60000" connectTimeout="3000" />
+	<tcpCl mwServerIp="127.0.0.1" mwServerPort="60000" connectTimeout="3000" />
 </config>		
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java
index 9b7edb2..e2fae7a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/common/CodeLocal.java
@@ -9,6 +9,9 @@
 	public static final String allProtocols = "LCD0100" ;//鏌ヨ鎵�鏈夊崗璁厤缃�
 
 	public static final String stopTcpSv = "LCD0110" ;//鍋滄TCP鏈嶅姟锛屼笉鍐嶆帴鍏ユ柊鐨凾CP杩炴帴锛屽凡缁廡CP杩炴帴鐨勫叏閮ㄦ柇杩炴帴
+
 	public static final String recoverTcpSv = "LCD0112" ;//鎭㈠TCP鏈嶅姟锛屾帴鍏ユ柊鐨凾CP杩炴帴
 
+	public static final String mwState = "LCD0200" ;//寰楀埌閫氫俊涓棿浠惰繍琛屼俊鎭�
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
index 8a2bfa1..6f0e02b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
@@ -35,6 +35,8 @@
                     rt = this.stopTcpSv() ;
                 }else if(com.equals(CodeLocal.recoverTcpSv)){
                     rt = this.recoverTcpSv() ;
+                }else if(com.equals(CodeLocal.mwState)){
+                    rt = this.mwState() ;
                 }else if(com.equals("10")){
                     rt = this.cd10() ;
                 }else if(com.equals("21")){
@@ -108,6 +110,10 @@
         return this.sendCom2Mw(this.commandLocal(CodeLocal.recoverTcpSv, null, null)) ;
     }
 
+    private BaseResponse mwState(){
+        return this.sendCom2Mw(this.commandLocal(CodeLocal.mwState, null, null)) ;
+    }
+
     private BaseResponse cd10(){
         Com10Vo comVo = new Com10Vo() ;
         comVo.rtuAddr = "532328059995" ;//鍓�6浣嶆槸琛屾斂鍖哄垝鐮侊紝鍚�6浣嶆槸搴忓垪鍙锋渶澶ф槸065535

--
Gitblit v1.8.0