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