Administrator
2024-07-18 66160634b3f6ee11af600cc17ef477aed657d28e
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -138,6 +138,21 @@
         if(ServerProperties.isLowPower == null){
            ServerProperties.isLowPower = false ;
         }
         String onlyDealRtus = conf.getSetAttrTxt(doc, "config.base", "onlyDealRtus", null, true, null) ;
         if(onlyDealRtus == null || onlyDealRtus.trim().equals("")){
            ServerProperties.onlyDealRtusTest = false ;
         }else{
            onlyDealRtus = onlyDealRtus.replaceAll(",", ",") ;
            onlyDealRtus = onlyDealRtus.replaceAll(" ", "") ;
            ServerProperties.onlyDealRtus = onlyDealRtus.split(",") ;
            if(ServerProperties.onlyDealRtus != null && ServerProperties.onlyDealRtus.length > 0){
               ServerProperties.onlyDealRtusTest = true ;
            }else{
               ServerProperties.onlyDealRtusTest = false ;
            }
         }
         //在支持多通信协议时,只有RTU上线了,才能识别出该RTU实际用的通信协议,进而用此协议解析上行数据及构造下行命令。
         //如果RTU未曾上线(通信中间件启动后该RTU未曾上线),那么在向它发送下行命令时,不能判断出其采用的协议,也不能构造命令,尤其是低功耗情况下,不上线是正常现象。
         // 当只有一个协议情况下,在RTU未曾上线时,也能用此协议构造命令并缓存下来,尤其适合低功耗情况。
@@ -151,7 +166,7 @@
         //针对一个RTU,下发命令的时间间隔
         ServerProperties.commandSendInterval = conf.getSetAttrPlusInt(doc, "config.base", "commandSendInterval", null, 1, 40, null) * 1000L ;
         //命令已经发送达最大次数,仍未收到命令结果,需要在缓存继续等待,其等待最大时长
         ServerProperties.cachWaitResultTimeout = conf.getSetAttrPlusInt(doc, "config.base", "cachWaitResultTimeout", null, 10, 60, null) * 1000L ;
         ServerProperties.cachWaitResultTimeout = conf.getSetAttrPlusInt(doc, "config.base", "cachWaitResultTimeout", null, 10, 360, null) * 1000L ;
         //不在线缓存的命令最大缓存时长
         ServerProperties.offLineCachTimeout = conf.getSetAttrPlusInt(doc, "config.base", "offLineCachTimeout", null, 15, 172800, null) * 1000L ;
         //TCP上行数据时刻缓存时长,当达到时长时,TCP上行数据时刻被清空,采用TCP上行数据时刻目的是,阻止上数据同时下发数据,因为RTU处理不过来