liurunyu
2025-03-21 fb50c6c8111fffd16091ce25d5d389ea3fcc560f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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() ;
        }
    }
 
}