From 7f5d914898c9d05942705ce7d80c0d14a8174df8 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 19 十二月 2023 15:57:14 +0800
Subject: [PATCH] 1、common模块优化代码; 2、通信中间件优化代码,队列遍历由递归调用改为while循环,原因是队列数据量大时递归调易产生栈溢出,HashTable多线程应用时仍有线程安全问题,改为HashMap+同步锁; 3、RTU模拟器和模拟器控制服务增加report命令

---
 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java
index cf45570..2bbe053 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-server/src/main/java/com/dy/testServer/forRmi/Manager.java
@@ -8,9 +8,11 @@
 import com.dy.testServer.ServerProperties;
 
 public class Manager {
-	
-	public static boolean enablemwTestStart = false ;
-	
+
+	public static boolean enablemwTestStartTcpConnect = false ;
+
+	public static boolean enablemwTestStartRtuReport = false ;
+
 	public static int clientId = 1 ;
 	
 	public static long maxClient = 0 ;
@@ -79,10 +81,12 @@
 		}else if(rqVo.code.equals(Code.cd3)){
 			resVo.obj = doDealGetStart(rqVo) ;
 		}else if(rqVo.code.equals(Code.cd4)){
-			doDealReportCount(rqVo) ;
+			resVo.obj = doDealGetReport(rqVo) ;
 		}else if(rqVo.code.equals(Code.cd5)){
-			doDealReportOver(rqVo) ;
+			doDealReportCount(rqVo) ;
 		}else if(rqVo.code.equals(Code.cd6)){
+			doDealReportOver(rqVo) ;
+		}else if(rqVo.code.equals(Code.cd7)){
 			doDealAllOver(rqVo) ;
 		}
 		return resVo ;
@@ -127,9 +131,9 @@
 		}
 		return conVo ;
 	}
-	private static ResStartVo doDealGetStart(RmiRequestVo rqVo){
-		ResStartVo rvo = new ResStartVo() ;
-		rvo.start = enablemwTestStart ;
+	private static ResStartTcpConnectVo doDealGetStart(RmiRequestVo rqVo){
+		ResStartTcpConnectVo rvo = new ResStartTcpConnectVo() ;
+		rvo.start = enablemwTestStartTcpConnect ;
 		int token = Integer.parseInt(rqVo.token) ;
 		MwTestClientStatus sta = token2ClientMap.get("" + token);
 		if(sta == null){
@@ -141,7 +145,21 @@
 		}
 		return rvo ;
 	}
-	
+	private static ResStartRtuReportVo doDealGetReport(RmiRequestVo rqVo){
+		ResStartRtuReportVo rvo = new ResStartRtuReportVo() ;
+		rvo.report = enablemwTestStartRtuReport ;
+		int token = Integer.parseInt(rqVo.token) ;
+		MwTestClientStatus sta = token2ClientMap.get("" + token);
+		if(sta == null){
+			sta = new MwTestClientStatus() ;
+			sta.reportVo = rvo ;
+			token2ClientMap.put("" + token, sta);
+		}else{
+			sta.reportVo = rvo ;
+		}
+		return rvo ;
+	}
+
 	
 	private static void doDealReportCount(RmiRequestVo rqVo){
 		int token = Integer.parseInt(rqVo.token) ;

--
Gitblit v1.8.0