liurunyu
2024-07-17 61cfa0d30461a8020f4e54330ea049ac6efb07c9
1、完善代码;
2、修改上行命令结果匹配命令的bug;
5个文件已修改
76 ■■■■ 已修改文件
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindComResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindComResponseV202404.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
@@ -65,9 +65,7 @@
     */
    private void nextDealRtuComResult(MidResultFromRtu resFromRtu){
        try{
            log.info("开始把命令结果放入缓中");
            RtuComResultCache.cacheRtuComResult(new RtuComResultNode(resFromRtu.data));
            log.info("结束把命令结果放入缓中");
        }catch(Exception e){
            log.error(e.getMessage(), e);
        }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
@@ -25,7 +25,7 @@
    @Override
    public void execute(Object data) {
        Data d = (Data)data ;
        if(d.getCommandId() != null && d.getCommandId().trim().equals("")){
        if(d.getCommandId() != null && !d.getCommandId().trim().equals("")){
            //无命令ID
            this.toNextTasks(data);
        }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
@@ -48,6 +48,8 @@
                    if(po != null){
                        po = this.updateCommandLogPo(po, dV1_0_1, dV1_0_1.subData) ;
                        sv.updateCommandLog(po);
                    }else{
                        log.error("未得到命令日志(" + d.getCommandId() + ")");
                    }
                }catch (Exception e){
                    log.error("保存控制器自报数据时发生异常", e);
@@ -59,18 +61,22 @@
    public RmCommandHistory updateCommandLogPo(RmCommandHistory po, DataV1_0_1 dV1_0_1, Object obj) throws Exception{
        if(obj instanceof DataCd97Vo){
            DataCd97Vo vo = (DataCd97Vo)obj ;
            po.setResult((byte)1);
            po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ;
            po.setResultText((JSONObject) JSON.toJSON(vo));
        }else if(obj instanceof DataCd98Vo){
            DataCd98Vo vo = (DataCd98Vo)obj ;
            po.setResult((byte)1);
            po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt));
            po.setResultText((JSONObject) JSON.toJSON(vo));
        }else if(obj instanceof DataCd92Vo){
            DataCd92Vo vo = (DataCd92Vo)obj ;
            po.setResult((byte)1);
            po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ;
            po.setResultText((JSONObject) JSON.toJSON(vo));
        }else if(obj instanceof DataCd93Vo){
            DataCd93Vo vo = (DataCd93Vo)obj ;
            po.setResult((byte)1);
            po.setResultTime(DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt)) ;
            po.setResultText((JSONObject) JSON.toJSON(vo));
        }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindComResponseV202404.java
@@ -24,7 +24,7 @@
    @Override
    public void execute(Object data) {
        Data d = (Data)data ;
        if(d.getCommandId() != null && d.getCommandId().trim().equals("")){
        if(d.getCommandId() != null && !d.getCommandId().trim().equals("")){
            //无命令ID
            this.toNextTasks(data);
        }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java
@@ -65,38 +65,38 @@
    //以下实现,采用了递归调用,当队列缓存结点很多时,会产生栈溢出异常
    //
    ////////////////////////////////////////////////
    /**
     * 处理上行数据
     */
    public Integer dealRtuComResult_() {
        Node first = RtuComResultCache.getFirstQueueNode() ;
        if(first != null){
            Integer count = RtuComResultCache.size() ;
            Node last = RtuComResultCache.getLastQueueNode() ;
            this.doDealRtuComResult_(first, last);
            return count ;
        }
        return null ;
    }
    /**
     * 处理缓存的上行数据节点
     * @param first 第一个节点
     * @param last 最后一个节点
     */
    private void doDealRtuComResult_(Node first, Node last){
        if(last != null){
            //在dealNode方法中,可能要把last从队列中移除,这时last.pre为空,所以提前把last.pre取出来
            Node pre = last.pre ;
            dealNode(last) ;
            if(first != last){
                doDealRtuComResult_(first, pre) ;
            }else{
                //停止
            }
        }
    }
//    /**
//     * 处理上行数据
//     */
//    public Integer dealRtuComResult_() {
//        Node first = RtuComResultCache.getFirstQueueNode() ;
//        if(first != null){
//            Integer count = RtuComResultCache.size() ;
//            Node last = RtuComResultCache.getLastQueueNode() ;
//            this.doDealRtuComResult_(first, last);
//            return count ;
//        }
//        return null ;
//    }
//
//    /**
//     * 处理缓存的上行数据节点
//     * @param first 第一个节点
//     * @param last 最后一个节点
//     */
//    private void doDealRtuComResult_(Node first, Node last){
//        if(last != null){
//            //在dealNode方法中,可能要把last从队列中移除,这时last.pre为空,所以提前把last.pre取出来
//            Node pre = last.pre ;
//            dealNode(last) ;
//            if(first != last){
//                doDealRtuComResult_(first, pre) ;
//            }else{
//                //停止
//            }
//        }
//    }
//
    /**
     * 处理一个节点
     * @param node 节点