liurunyu
2024-10-23 dc86d90bdd25025ad44fc777c9956cac2e219bec
通信中间件增加查询部分RTU在线情况内部命令
4个文件已修改
64 ■■■■ 已修改文件
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -162,6 +162,25 @@
            return map ;
        }
    }
    /**
     * 得到部分在线情况
     * @return
     */
    public static HashMap<String, Boolean> partOnLine(String[] rtuAddrArrGrp){
        synchronized (sessionTable){
            HashMap<String, Boolean> map = new HashMap<String, Boolean>();
            for(String rtuAddr : rtuAddrArrGrp){
                TcpSession tcpSe = sessionTable.get(rtuAddr) ;
                if(tcpSe != null){
                    map.put(rtuAddr, tcpSe.ioSession.isConnected()) ;
                }
            }
            return map ;
        }
    }
    /**
     * 得到所有RTU连接状态情况
     * @return
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -21,8 +21,10 @@
        String code = com.getCode() ;
        if(code.equals(CodeLocal.clock)){
            return this.clock(com) ;
        }else if(code.equals(CodeLocal.onLine)){
            return this.onLine(com) ;
        }else if(code.equals(CodeLocal.onAllLine)){
            return this.onAllLine(com) ;
        }else if(code.equals(CodeLocal.onPartLine)){
            return this.onPartLine(com) ;
        }else if(code.equals(CodeLocal.onLineStatistics)){
            return this.onLineStateStatistics(com) ;
        }else if(code.equals(CodeLocal.allProtocols)){
@@ -50,9 +52,23 @@
     * 查询所有RTU在线情况
     * @throws Exception
     */
    private Command onLine(Command command) throws Exception{
        RtuOnLineVo ol = new RtuOnLineDeal().deal() ;
        return ReturnCommand.successed("查询所有测站在线情况结果", command.getId(), command.getCode(), ol) ;
    private Command onAllLine(Command command) throws Exception{
        RtuOnLineVo ol = new RtuOnLineDeal().dealAll() ;
        return ReturnCommand.successed("查询所有RTU在线情况结果", command.getId(), command.getCode(), ol) ;
    }
    /**
     * 查询部分RTU在线情况
     * @throws Exception
     */
    private Command onPartLine(Command command) throws Exception{
        if(command.param != null && command.param instanceof String && !command.param.equals("")){
            String[] rtuAddrGrp = ((String)command.param).split(",");
            RtuOnLineVo ol = new RtuOnLineDeal().dealPart(rtuAddrGrp) ;
            return ReturnCommand.successed("查询部分RTU在线情况结果", command.getId(), command.getCode(), ol) ;
        }else{
            return ReturnCommand.errored("出错,命令参数应该是所查询RTU的地址串",  command.getId(), command.getCode()) ;
        }
    }
    /**
@@ -61,7 +77,7 @@
     */
    private Command onLineStateStatistics(Command command) throws Exception{
        RtuOnLineStateStatisticsVo vo = new RtuOnLineStateStatisticsDeal().deal() ;
        return ReturnCommand.successed("查询所有测站在线情况结果", command.getId(), command.getCode(), vo) ;
        return ReturnCommand.successed("查询所有RTU在线情况结果", command.getId(), command.getCode(), vo) ;
    }
    /**
@@ -80,7 +96,6 @@
    private Command stopTcpSv(Command command) throws Exception{
        TcpUnit.getInstance().stop(new UnitCallbackInterface(){
            public void call(Object obj) throws Exception {
            }
        });
        return ReturnCommand.successed("已经启动停止TCP服务", command.getId(), command.getCode(), null) ;
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
@@ -4,9 +4,11 @@
    public static final String clock = "LCD0000" ;//查询监控中间件时钟
    public static final String onLine = "LCD0001" ;//查询所有RTU在线情况
    public static final String onAllLine = "LCD0001" ;//查询所有RTU在线情况
    public static final String onLineStatistics = "LCD0002" ;//查询所有RTU在线情况
    public static final String onPartLine = "LCD0002" ;//查询所有RTU在线情况
    public static final String onLineStatistics = "LCD0003" ;//查询所有RTU状态情况
    public static final String allProtocols = "LCD0100" ;//查询所有协议配置
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
@@ -7,7 +7,15 @@
    /**
     * 查询在线与不在线情况
     */
    public RtuOnLineVo deal(){
    public RtuOnLineVo dealAll(){
        return (new RtuOnLineVo()).setOnLine(TcpSessionCache.allOnLine());
    }
    /**
     * 查询在线与不在线情况
     */
    public RtuOnLineVo dealPart(String[] rtuAddrGrp){
        return (new RtuOnLineVo()).setOnLine(TcpSessionCache.partOnLine(rtuAddrGrp));
    }
}