From b3b17b231e2f2840332ce6eb96f791865fdec6d5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 16:38:16 +0800
Subject: [PATCH] 代码优化
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java | 35 ++++++++++++++++++++++-------------
1 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
index fe6e49c..06c34ed 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
@@ -55,9 +55,9 @@
e.printStackTrace();
log.error("灏嗘暟鎹浆鎹负鍗佸叚杩涘埗鏃跺嚭閿欙紒" ) ;
}
- String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey) ;
- String protocolName = null ;
- Short protocolVersion = null ;
+ String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ;
+ String protocolName = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrProtocolName) ;
+ Short protocolVersion = (Short)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrProtocolVersion) ;
boolean isOnLine = false ;
if(rtuAddr == null){
//璇存槑鍒氬缓绔嬬綉缁滆繛鎺ワ紝姝ゆ暟鎹簲璇ユ槸涓婄嚎鏁版嵁
@@ -69,13 +69,13 @@
protocolName = (String)rtuAddrProtocolNameVersion[1] ;
protocolVersion = (Short)rtuAddrProtocolNameVersion[2] ;
- if(rtuAddr != null && protocolName != null){
+ if(rtuAddr != null && protocolName != null && protocolVersion != null){
//璁剧疆session鐨勫睘鎬D
- TcpUnit.getInstance().setIoSessionArrId(session, rtuAddr);
+ TcpUnit.getInstance().setIoSessionArrs(session, rtuAddr, protocolName, protocolVersion) ;
//缂撳瓨session
- TcpSessionCache.putNewTcpSession(rtuAddr, protocolName, protocolVersion, session);
+ TcpSessionCache.putNewTcpSession(rtuAddr, session);
- log.info("RTU(鍦板潃锛�" + rtuAddr + "锛屽崗璁細" + protocolName + "锛屽崗璁増鏈彿锛�" + protocolVersion + ")涓婄嚎浜嗐��") ;
+ log.info("RTU(鍦板潃锛�" + rtuAddr + "锛屽崗璁細" + protocolName + "锛岀増鏈彿锛�" + protocolVersion + ")涓婄嚎浜嗐��") ;
}
}
}
@@ -95,14 +95,16 @@
}
}
if(toDeal){
+ /*
if(protocolName == null){
Object[] objs = TcpSessionCache.getTcpProtocolNameVersion(rtuAddr) ;
protocolName = (String)objs[0] ;
protocolVersion = (Short)objs[1] ;
}
+ */
//璁剧疆鏀跺埌鏁版嵁鏃跺埢
- TcpSessionCache.cacheUpDataTime(rtuAddr);
+ TcpSessionCache.whenUpData(rtuAddr);
if(protocolName != null){
//瀵逛笂琛屾暟鎹繘琛屽鐞�
@@ -171,18 +173,25 @@
boolean isOnLine,
byte[] upBuf,
String upHex) throws Exception{
- Driver dri = ProtocolCache.getDriver(protocolName) ;
+ Driver dri = ProtocolCache.getDriver(protocolName, protocolVersion) ;
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 code, String codeName, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData) {
+ public void callback(String rtuAddrAtHead,
+ String code,
+ String codeName,
+ String upHex,
+ Boolean reportOrResponse_trueOrFalse,
+ boolean parseFail,
+ String rtuAddrInData,
+ Object ...objs) {
//鏇存柊缁堢鐘舵��
if(rtuAddrInData != null && !rtuAddrInData.equals(rtuAddrAtHead)){
//鏁版嵁澶翠腑鐨凴TU鍦板潃涓庢暟鎹腑鐨凴TU鍦板潃涓嶄竴鑷达紝鏇存崲鎴愭暟鎹腑鐨凴TU鍦板潃
- TcpSessionCache.changeRtuAddr(rtuAddrAtHead, rtuAddrInData, protocolName, protocolVersion, session);
- session.setAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey, rtuAddrInData) ;
+ TcpSessionCache.changeRtuAddr(rtuAddrAtHead, rtuAddrInData, session);
+ session.setAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr, rtuAddrInData) ;
}
String rtuAddr ;
@@ -228,7 +237,7 @@
@Override
public void exception(Exception e) {
}
- });
+ }, objs);
}
}) ;
if(midRs != null){
--
Gitblit v1.8.0