pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -124,6 +124,27 @@ return null ; } } /** * 得到所有在线与离线数量统计 * @return [0]=在线数量,[2]上线过,但当前离线的数量 */ public static Integer[] allOnLineStateStatistics(){ synchronized (sessionTable){ Integer[] arr = new Integer[]{0, 0} ; Iterator<Entry<String, TcpSession>> it = sessionTable.entrySet().iterator() ; Entry<String, TcpSession> entry = null ; while(it.hasNext()){ entry = it.next() ; if(entry.getValue().ioSession.isConnected()){ arr[0]++ ; }else{ arr[1]++ ; } } return arr ; } } /** * 得到所有在线情况 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -23,6 +23,8 @@ return this.clock(com) ; }else if(code.equals(CodeLocal.onLine)){ return this.onLine(com) ; }else if(code.equals(CodeLocal.onLineStatistics)){ return this.onLineStateStatistics(com) ; }else if(code.equals(CodeLocal.allProtocols)){ return this.allProtocols(com) ; }else if(code.equals(CodeLocal.stopTcpSv)){ @@ -54,6 +56,15 @@ } /** * 统计在线与不在线情况 * @throws Exception */ private Command onLineStateStatistics(Command command) throws Exception{ RtuOnLineStateStatisticsVo vo = new RtuOnLineStateStatisticsDeal().deal() ; return ReturnCommand.successed("查询所有测站在线情况结果", command.getId(), command.getCode(), vo) ; } /** * 查询所有RTU协议配置 * @throws Exception */ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
@@ -5,7 +5,9 @@ public static final String clock = "LCD0000" ;//查询监控中间件时钟 public static final String onLine = "LCD0001" ;//查询所有RTU在线情况 public static final String onLineStatistics = "LCD0002" ;//查询所有RTU在线情况 public static final String allProtocols = "LCD0100" ;//查询所有协议配置 public static final String stopTcpSv = "LCD0110" ;//停止TCP服务,不再接入新的TCP连接,已经TCP连接的全部断连接 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsDeal.java
New file @@ -0,0 +1,22 @@ package com.dy.rtuMw.server.local.localProtocol; import com.dy.rtuMw.server.forTcp.TcpSessionCache; /** * @Author: liurunyu * @Date: 2024/10/15 15:56 * @Description */ public class RtuOnLineStateStatisticsDeal { /** * 统计在线与不在线情况 */ public RtuOnLineStateStatisticsVo deal(){ RtuOnLineStateStatisticsVo vo = new RtuOnLineStateStatisticsVo() ; Integer[] onOff = TcpSessionCache.allOnLineStateStatistics() ; vo.onLineNum = onOff[0] ; vo.offLineNum = onOff[1] ; return vo ; } } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsVo.java
New file @@ -0,0 +1,27 @@ package com.dy.rtuMw.server.local.localProtocol; /** * @Author: liurunyu * @Date: 2024/10/15 15:56 * @Description */ public class RtuOnLineStateStatisticsVo { public Integer onLineNum; public Integer offLineNum; public Integer getOnLineNum() { return onLineNum; } public void setOnLineNum(Integer onLineNum) { this.onLineNum = onLineNum; } public Integer getOffLineNum() { return offLineNum; } public void setOffLineNum(Integer offLineNum) { this.offLineNum = offLineNum; } }