From 7559ffe69fdbf3a0224c5abaa867af92d567fc51 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 02 十二月 2024 10:25:42 +0800
Subject: [PATCH] 1、完善代码; 2、补全RTU状态采集(阀门状态)。
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/DriverV2.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatus.java | 1
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java | 17 ++++-
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java | 74 ------------------------
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuStatusDeal.java | 17 ++++-
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuStatus/RtuInfoNotify.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java | 22 ++++++-
11 files changed, 54 insertions(+), 89 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
index 789ee94..54279c3 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/DriverV1.java
@@ -106,10 +106,10 @@
}
@Override
public void notify(NotifyInfo ...infos) {
+ notify.notify(rtuAddr, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
}
});
}
-
} catch (Exception e) {
isFail = true ;
return new MidResult[]{(new MidResultError(ProtocolConstantV206V1.protocolName, rtuAddr, "涓ラ噸閿欒锛屽垎鏋怰tu鏁版嵁鍑洪敊锛佹暟鎹负锛�" + upHex + (e.getMessage() == null?"":("锛屽嚭閿欎俊鎭細" + e.getMessage())), e))} ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/DriverV2.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/DriverV2.java
index 5dba5f7..3297dbb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/DriverV2.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/DriverV2.java
@@ -1,6 +1,7 @@
package com.dy.common.mw.protocol.p206V2;
import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1;
import com.dy.common.util.DateTime;
@AnnotationDriver(enable = true,
@@ -107,6 +108,7 @@
}
@Override
public void notify(NotifyInfo ...infos) {
+ notify.notify(rtuAddr, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
}
});
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java
index 0c2e775..c504d5c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java
@@ -67,7 +67,6 @@
if(crcStr != null){
return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屼笂琛屾暟鎹瓹RC妫�鏌ュけ璐ワ紝" + crcStr, null))} ;
}
- rtuAddr = cp.parseRtuAddr(upBuffer) ;
upCode = cp.parseCode(upBuffer) ;
if(upCode == null){
return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳戒粠涓婅鏁版嵁涓В鏋愬嚭鍔熻兘鐮侊紒", null))} ;
@@ -107,6 +106,7 @@
}
@Override
public void notify(NotifyInfo ...infos) {
+ notify.notify(rtuAddr, ProtocolConstantV206V1.protocolName, ProtocolConstantV206V1.protocolVer, infos);
}
});
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
index 7b5c530..c86bb60 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
@@ -7,7 +7,7 @@
import com.dy.rtuMw.server.forTcp.MidResultActionError;
import com.dy.rtuMw.server.forTcp.MidResultActionFromRtu;
import com.dy.rtuMw.server.forTcp.MidResultActionToRtu;
-import com.dy.rtuMw.server.protocolDriver.RtuInfoNotify;
+import com.dy.rtuMw.server.rtuStatus.RtuInfoNotify;
public class AdapterImp_ProtocolUnit implements ProtocolUnitAdapter {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatus.java
index 7737987..aebbf41 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatus.java
@@ -89,7 +89,6 @@
this.valveCloseLastDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
this.valveStatusLastTimeStamp = System.currentTimeMillis() ;
}
-
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
index 2ec4fb6..9f8c204 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
@@ -22,18 +22,27 @@
* 寰楀埌閮ㄥ垎鐘舵��
* @return
*/
- public static Map<String, RtuStatus> partStatus(String[] rtuAddrArrGrp){
+ public static Map<String, RtuStatus> someStatus(String[] rtuAddrArrGrp){
synchronized (map){
- Map<String, RtuStatus> map = new HashMap<>();
+ Map<String, RtuStatus> rsMap = new HashMap<>();
for(String rtuAddr : rtuAddrArrGrp){
RtuStatus status = map.get(rtuAddr) ;
if(status != null){
- map.put(rtuAddr, status) ;
+ rsMap.put(rtuAddr, status) ;
}
}
- return map ;
+ return rsMap ;
}
}
+ /**
+ * 寰楀埌涓�涓猂TU鐨勭姸鎬�
+ * @return
+ */
+ public static RtuStatus oneStatus(String rtuAddr){
+ return map.get(rtuAddr) ;
+ }
+
+
public static void onLine(String rtuAddr, String ip, Integer port, String protocolName, Short protocolVersion){
RtuStatus vo = map.get(rtuAddr) ;
if(vo == null) {
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 cc82cf0..d03d826 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
@@ -113,19 +113,6 @@
* 寰楀埌Tcp閫氫俊鍗忚鍚嶇О
* @param rtuAddr
* @return
- public static String getTcpProtocolName(String rtuAddr){
- TcpSession tcpSe = sessionTable.get(rtuAddr) ;
- if(tcpSe != null){
- return tcpSe.protocolName ;
- }else{
- return null ;
- }
- }
- */
- /**
- * 寰楀埌Tcp閫氫俊鍗忚鍚嶇О
- * @param rtuAddr
- * @return
* */
public static Object[] getTcpProtocolNameVersion(String rtuAddr){
TcpSession tcpSe = map.get(rtuAddr) ;
@@ -194,50 +181,7 @@
return map ;
}
}
-//
-// /**
-// * 寰楀埌鎵�鏈塕TU杩炴帴鐘舵�佹儏鍐�
-// * @return
-// */
-// public static List<RtuSessionStatus> allConnectStatus(){
-// synchronized (sessionTable){
-// List<RtuSessionStatus> list = new ArrayList<RtuSessionStatus>();
-// Iterator<Entry<String, TcpSession>> it = sessionTable.entrySet().iterator() ;
-// Entry<String, TcpSession> entry = null ;
-// while(it.hasNext()){
-// entry = it.next() ;
-// RtuSessionStatus vo = new RtuSessionStatus() ;
-// vo.rtuAddr = entry.getKey() ;
-// IoSession se = entry.getValue().ioSession ;
-// vo.onTrueOffLine = se.isConnected() ;
-// InetSocketAddress sa = (InetSocketAddress)se.getRemoteAddress() ;
-// if(sa != null){
-// InetAddress inetAddr = sa.getAddress() ;
-// if(inetAddr != null){
-// vo.ip = inetAddr.getHostAddress() ;
-// vo.port = sa.getPort() ;
-// }
-// }
-// list.add(vo) ;
-// }
-// return list ;
-// }
-// }
-//
-
- /**
- * 寰楀埌IoSession
- * @param rtuAddr
- * @return
- */
-// public IoSession getIoSession(String rtuAddr){
-// TcpSession tcpSe = sessionMap.get(rtuAddr) ;
-// if(tcpSe != null){
-// return tcpSe.ioSession ;
-// }
-// return null ;
-// }
-
+
/**
* 缃戠粶鏄惁杩炴帴
* @param rtuAddr
@@ -312,21 +256,5 @@
}
}
}
-
-// public static void updateRtuStatus(Long now){
-// synchronized (sessionTable){
-// Iterator<TcpSession> it = sessionTable.values().iterator() ;
-// TcpSession tcpSe ;
-// while(it.hasNext()){
-// tcpSe = it.next() ;
-// if(tcpSe.lastUpDataTime != null){
-// if(now - tcpSe.lastUpDataTime > ServerProperties.lastUpDataTimeLive){
-// tcpSe.lastUpDataTime = null ;
-// }
-// }
-// }
-// }
-// }
-
}
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 3441197..c26ef26 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
@@ -34,7 +34,9 @@
}else if(code.equals(CodeLocal.allRtuStates)){
return this.allRtuStates(com) ;
}else if(code.equals(CodeLocal.partRtuStates)){
- return this.partRtuStates(com) ;
+ return this.someRtuStates(com) ;
+ }else if(code.equals(CodeLocal.oneRtuStates)){
+ return this.oneRtuStates(com) ;
}else if(code.equals(CodeLocal.allProtocols)){
return this.allProtocols(com) ;
}else if(code.equals(CodeLocal.stopTcpSv)){
@@ -101,10 +103,10 @@
* 鏌ヨ閮ㄥ垎RTU鐘舵��
* @throws Exception
*/
- private Command partRtuStates(Command command) throws Exception{
+ private Command someRtuStates(Command command) throws Exception{
if(command.param != null && command.param instanceof String && !command.param.equals("")){
String[] rtuAddrGrp = ((String)command.param).split(",");
- Map<String, RtuStatus> map = new RtuStatusDeal().dealPart(rtuAddrGrp) ;
+ Map<String, RtuStatus> map = new RtuStatusDeal().dealSome(rtuAddrGrp) ;
return ReturnCommand.successed("鏌ヨ閮ㄥ垎RTU鐘舵�佺粨鏋�", command.getId(), command.getCode(), map) ;
}else{
return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ槸鎵�鏌ヨRTU鐨勫湴鍧�涓�", command.getId(), command.getCode()) ;
@@ -112,6 +114,20 @@
}
/**
+ * 鏌ヨ閮ㄥ垎RTU鐘舵��
+ * @throws Exception
+ */
+ private Command oneRtuStates(Command command) throws Exception{
+ if(command.param != null && command.param instanceof String && !command.param.equals("")){
+ String rtuAddr = (String)command.param;
+ RtuStatus rtuStatus = new RtuStatusDeal().dealOne(rtuAddr) ;
+ return ReturnCommand.successed("鏌ヨ閮ㄥ垎RTU鐘舵�佺粨鏋�", command.getId(), command.getCode(), rtuStatus) ;
+ }else{
+ return ReturnCommand.errored("鍑洪敊锛屽懡浠ゅ弬鏁板簲璇ユ槸鎵�鏌ヨRTU鐨勫湴鍧�", command.getId(), command.getCode()) ;
+ }
+ }
+
+ /**
* 鏌ヨ鎵�鏈塕TU鍗忚閰嶇疆
* @throws Exception
*/
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 02a1783..9337b04 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
@@ -14,6 +14,8 @@
public static final String partRtuStates = "LCD0011" ;//鏌ヨ閮ㄥ垎RTU鐘舵��
+ public static final String oneRtuStates = "LCD0012" ;//鏌ヨ涓�涓猂TU鐘舵��
+
public static final String allProtocols = "LCD0100" ;//鏌ヨ鎵�鏈夊崗璁厤缃�
public static final String stopTcpSv = "LCD0110" ;//鍋滄TCP鏈嶅姟锛屼笉鍐嶆帴鍏ユ柊鐨凾CP杩炴帴锛屽凡缁廡CP杩炴帴鐨勫叏閮ㄦ柇杩炴帴
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuStatusDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuStatusDeal.java
index 7103e28..d5c23c7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuStatusDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuStatusDeal.java
@@ -12,7 +12,7 @@
public class RtuStatusDeal {
/**
- * 鏌ヨ鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
+ * 鏌ヨ鐘舵��
*/
public Map<String, RtuStatus> dealAll(){
return RtuStatusDealer.allStatus();
@@ -20,9 +20,18 @@
/**
- * 鏌ヨ鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
+ * 鏌ヨ鐘舵��
*/
- public Map<String, RtuStatus> dealPart(String[] rtuAddrGrp){
- return RtuStatusDealer.partStatus(rtuAddrGrp) ;
+ public Map<String, RtuStatus> dealSome(String[] rtuAddrGrp){
+ return RtuStatusDealer.someStatus(rtuAddrGrp) ;
+ }
+
+
+
+ /**
+ * 鏌ヨ鐘舵��
+ */
+ public RtuStatus dealOne(String rtuAddr){
+ return RtuStatusDealer.oneStatus(rtuAddr) ;
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/protocolDriver/RtuInfoNotify.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuStatus/RtuInfoNotify.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/protocolDriver/RtuInfoNotify.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuStatus/RtuInfoNotify.java
index b22a455..9edb6ee 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/protocolDriver/RtuInfoNotify.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuStatus/RtuInfoNotify.java
@@ -1,4 +1,4 @@
-package com.dy.rtuMw.server.protocolDriver;
+package com.dy.rtuMw.server.rtuStatus;
import com.dy.common.mw.protocol.Notify;
import com.dy.common.mw.protocol.NotifyInfo;
--
Gitblit v1.8.0