pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuState/RtuStatus.java
New file
@@ -0,0 +1,103 @@
package com.dy.common.mw.protocol.rtuState;
import com.alibaba.fastjson2.annotation.JSONField;
import com.dy.common.util.DateTime;
import lombok.Data;
/**
 * RTU在通信中间件中的运行状态
 */
@Data
public class RtuStatus {
   public String rtuAddr ;//rtu地址
   public String ip ;//RTU端IP
   public Integer port ;//RTU端端口
   public String onLineDt ;//最近上线时刻
   public String offLineDt ;//最近离线时刻
   public String protocolName ;//协议名称
   public Short protocolVersion ;//协议版本号
   public Boolean valveOpenTrueCloseFalse ;//阀门状态(true为开启状态,false为关闭态)
   public String valveOpenLastDt ;//最后设置阀门开启状态时刻
   public String valveCloseLastDt ;//最后设置阀门关闭状态时刻
   @JSONField(serialize = false)
   public Long valveStatusLastTimeStamp ;//最后设置阀门状态时刻
   @JSONField(serialize = false)
   public String lastUpCode ;//最近一次上行数据的功能码
   public String lastUpCodeName ;//最近一次上行数据的功能码名称
   public String lastUpDt ;//最近一次上行数据的时刻
   @JSONField(serialize = false)
   public String lastDownCode ;//最近一次下行数据的功能码
   public String lastDownCodeName ;//最近一次下行数据的功能码名称
   public String lastDownDt ;//最近一次下行数据的时刻
   @JSONField(serialize = false)
   public String lastSuccessCommandCode ;//最近一次成功命令的功能码
   public String lastSuccessCommandCodeName ;//最近一次成功命令的功能码名称
   public String lastSuccessCommandDt ;//最近一次成功命令的时刻
   @JSONField(serialize = false)
   public String lastFailureCommandCode ;//最近一次失败命令的功能码
   public String lastFailureCommandCodeName ;//最近一次失败命令的功能码名称
   public String lastFailureCommandDt ;//最近一次失败命令的时刻
   public void onLine(String rtuAddr, String ip, Integer port, String protocolName, Short protocolVersion){
      this.rtuAddr = rtuAddr ;
      this.ip = ip ;
      this.port = port ;
      this.onLineDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
      this.protocolName = protocolName ;
      this.protocolVersion = protocolVersion ;
   }
   public void offLine(){
      this.offLineDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
   }
   public void upData(String code, String codeName, Integer bufferLen){
      this.lastUpCode = code ;
      this.lastUpCodeName = codeName ;
      this.lastUpDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
   }
   public void downData(String code, String codeName, Integer bufferLen){
      this.lastDownCode = code ;
      this.lastDownCodeName = codeName ;
      this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
   }
   public void commandSuccess(String code, String codeName){
      this.lastSuccessCommandCode = code ;
      this.lastSuccessCommandCodeName = codeName ;
      this.lastSuccessCommandDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
   }
   public void commandFailure(String code, String codeName){
      this.lastFailureCommandCode = code ;
      this.lastFailureCommandCodeName = codeName ;
      this.lastFailureCommandDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
   }
   public void valveOpen(){
      if(this.valveOpenTrueCloseFalse == null || !this.valveOpenTrueCloseFalse.booleanValue()){
         this.valveOpenTrueCloseFalse = true ;
         this.valveOpenLastDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
         this.valveCloseLastDt = null ;
         this.valveStatusLastTimeStamp = System.currentTimeMillis() ;
      }
   }
   public void valveClose(){
      if(this.valveOpenTrueCloseFalse == null || this.valveOpenTrueCloseFalse.booleanValue()){
         this.valveOpenTrueCloseFalse = false ;
         this.valveCloseLastDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
         this.valveStatusLastTimeStamp = System.currentTimeMillis() ;
      }
   }
}