| 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() ; | 
|         } | 
|     } | 
|   | 
| } |