pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java
@@ -1,5 +1,7 @@
package com.dy.aceMw.server.forTcp;
import com.dy.aceMw.server.rtuData.RtuComResultCache;
import com.dy.aceMw.server.rtuData.RtuComResultNode;
import com.dy.aceMw.server.rtuData.RtuDataNode;
import com.dy.aceMw.server.rtuData.RtuDataCache;
import org.apache.logging.log4j.LogManager;
@@ -28,16 +30,17 @@
            MidResultToRtu resToRtu = TcpDownCommandCache.matchFromHead(resFromRtu) ;
            if(resToRtu != null){
               //匹配到下发的命令
               resFromRtu.setCommandId(resToRtu.commandId) ;
               this.nextDeal(false, resFromRtu);
               resFromRtu.matchedCommand(resToRtu.rtuResultSendWebUrl, resToRtu.commandId) ;
               this.nextDealRtuData(false, resFromRtu);
               this.nextDealRtuComResult(resFromRtu);
            }else{
               this.nextDeal(false, resFromRtu);
               this.nextDealRtuData(false, resFromRtu);
               //未匹配到下发的命令,命令在缓存因超时被清除了
               RtuStatusDealer.commandFail2Success(resFromRtu.rtuAddr) ;
            }
         }else{
            //主动上报数据
            this.nextDeal(true, resFromRtu);
            this.nextDealRtuData(true, resFromRtu);
         }
      }
   }
@@ -47,11 +50,23 @@
    * @param reportOrResponse_trueOrFalse
    * @param resFromRtu
    */
   private void nextDeal(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){
   private void nextDealRtuData(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){
      try{
         RtuDataCache.cacheRtuUpData(reportOrResponse_trueOrFalse, new RtuDataNode(resFromRtu.data));
      }catch(Exception e){
         log.error(e.getMessage(), e);
      }
   }
   /**
    * 进入单线程环境中运行
    * @param resFromRtu
    */
   private void nextDealRtuComResult(MidResultFromRtu resFromRtu){
      try{
         RtuComResultCache.cacheRtuComResult(new RtuComResultNode(resFromRtu.data));
      }catch(Exception e){
         log.error(e.getMessage(), e);
      }
   }
}