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-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java index 16418cf..cce0aeb 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java @@ -14,11 +14,11 @@ import com.dy.common.mw.protocol.Driver; import com.dy.common.mw.protocol.OnLine; import com.dy.common.mw.protocol.OnLineHandle; -import com.dy.common.mw.protocol.ProtocolCach; +import com.dy.common.mw.protocol.ProtocolCache; import com.dy.aceMw.server.ServerProperties; import com.dy.aceMw.server.forTcp.RtuLogDealer; import com.dy.aceMw.server.forTcp.RtuStatusDealer; -import com.dy.aceMw.server.forTcp.TcpSessionCach; +import com.dy.aceMw.server.forTcp.TcpSessionCache; import com.dy.common.util.ByteUtil; public class RtuUpTask extends CoreTask { @@ -26,7 +26,7 @@ private static final Logger log = LogManager.getLogger(RtuUpTask.class.getName()); @Override - public Integer excute() { + public Integer execute() { Object[] os = (Object[])this.data ; IoSession session = (IoSession)os[0] ; byte[] upBuf = (byte[])os[1] ; @@ -72,7 +72,7 @@ //璁剧疆session鐨勫睘鎬D TcpUnit.getInstance().setIoSessionArrId(session, rtuAddr); //缂撳瓨session - TcpSessionCach.putNewTcpSession(rtuAddr, protocolName, session); + TcpSessionCache.putNewTcpSession(rtuAddr, protocolName, session); log.info("RTU(鍦板潃锛�" + rtuAddr + ")涓婄嚎浜嗐��") ; } @@ -81,11 +81,11 @@ if(rtuAddr != null){ if(protocolName == null){ - protocolName = TcpSessionCach.getTcpProtocolName(rtuAddr) ; + protocolName = TcpSessionCache.getTcpProtocolName(rtuAddr) ; } //璁剧疆鏀跺埌鏁版嵁鏃跺埢 - TcpSessionCach.cachUpDataTime(rtuAddr); + TcpSessionCache.cacheUpDataTime(rtuAddr); if(protocolName != null){ //瀵逛笂琛屾暟鎹繘琛屽鐞� @@ -144,17 +144,17 @@ * @throws Exception 寮傚父 */ private void dealUpData(IoSession session, String rtuAddrAtHead, String protocolName, boolean isOnLine, byte[] upBuf, String upHex) throws Exception{ - Driver dri = ProtocolCach.getDriver(protocolName) ; + Driver dri = ProtocolCache.getDriver(protocolName) ; if(dri == null){ log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒板崗璁�" + protocolName + "椹卞姩绫诲疄渚嬶紒"); }else{ MidResult[] midRs = dri.parseData(ServerProperties.isLowPower, rtuAddrAtHead, upBuf, upHex, new DriverParserDataCallback(){ @Override - public void callback(String rtuAddrAtHead, String meterNoAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData, String meterNoInData) { + public void callback(String rtuAddrAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData) { //鏇存柊缁堢鐘舵�� if(rtuAddrInData != null && !rtuAddrInData.equals(rtuAddrAtHead)){ //鏁版嵁澶翠腑鐨凴TU鍦板潃涓庢暟鎹腑鐨凴TU鍦板潃涓嶄竴鑷达紝鏇存崲鎴愭暟鎹腑鐨凴TU鍦板潃 - TcpSessionCach.changeRtuAddr(rtuAddrAtHead, rtuAddrInData, protocolName, session); + TcpSessionCache.changeRtuAddr(rtuAddrAtHead, rtuAddrInData, protocolName, session); session.setAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey, rtuAddrInData) ; } -- Gitblit v1.8.0