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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.dy.common.mw.protocol;
 
import com.alibaba.fastjson2.JSON;
 
import java.io.Serial;
 
/**
 * 数据根
 *
 */
public class Data  implements java.io.Serializable{
    @Serial
    private static final long serialVersionUID = 20160805192500101L;
 
    private String commandId ;//命令ID,可能为null
    private String rtuAddr ;//终端地址
    private String protocol ;//数据所对应的协议名称
    private String code ;//数据所对应的功能码:
    private Object subData ;//对应各个功能码的具体数据
    private String hex ;//上报数据的十六进制
 
    public String toString() {
        StringBuilder sb = new StringBuilder() ;
        sb.append("上行报文(十六进制): ").append((hex == null?"":hex)).append("\n") ; //
        sb.append("Rtu地址 : ").append((rtuAddr==null?"":rtuAddr)).append("\n") ;
        if(commandId != null){
            sb.append("命令ID : ").append(commandId).append("\n") ; //命令ID
        }
        sb.append("协议 : ").append((protocol == null?"":protocol)).append("\n") ; //
        sb.append((code == null ? "" : ("功能码:" + code + "\n"))) ;
        if(this.subData  != null){
            sb.append("上行数据:\n").append(this.subData) ;
        }
        return sb.toString() ;
    }
 
 
    /**
     * 对象转成json
     * @return 对象
     */
    public String toJson(){
        return JSON.toJSONString(this);
    }
    /**
     * json转成对象
     * @param json json
     * @return Data Date
     */
    @SuppressWarnings("unused")
    public static Data jsonToObject(String json){
        return JSON.parseObject(json, Data.class) ;
    }
 
    /*
    public static void main(String[] rags) throws Exception{
        Data d = new Data() ;
        d.code = "01" ;
        d.rtuAddr = "123234" ;
        d.meterNo = "1234567890123456" ;
 
        DataV1_0_1 subD = new DataV1_0_1() ;
        subD.rtuAddr = "2342345" ;
        subD.meterNo = "1234567890123456" ;
        
        d.subData = subD ;
        
        
        DataCd01Vo cd1Vo = new DataCd01Vo() ;
        cd1Vo.dt = "345w" ;
        
        subD.dataCd01Vo = cd1Vo ;
        
        String json = d.toJson() ;
        
        System.out.println(json);
    }
    */
 
    public String getRtuAddr() {
        return rtuAddr;
    }
 
    public void setRtuAddr(String rtuAddr) {
        this.rtuAddr = rtuAddr;
    }
    
    public String getCode() {
        return code;
    }
 
    public void setCode(String code) {
        this.code = code;
    }
 
    public String getProtocol() {
        return protocol;
    }
    
    public void setProtocol(String protocol) {
        this.protocol = protocol;
    }
    
    public Object getSubData() {
        return subData;
    }
 
    public void setSubData(Object subData) {
        this.subData = subData;
    }
 
    @SuppressWarnings("unused")
    public String getHex() {
        return hex;
    }
 
    public void setHex(String hex) {
        this.hex = hex;
    }
 
    public void setCommandId(String commandId) {
        this.commandId = commandId;
    }
    /**
     * 得到上行数据对应的命令ID 
     * 如果是主动上报数据,则此ID为空
     * @return  commandId
     */
    public String getCommandId(){
        return this.commandId ;
    }
 
    
 
}