1 package net.sf.mbus4j.dataframes;
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 import net.sf.json.JSONObject;
31
32 import net.sf.mbus4j.json.JsonSerializeType;
33
34
35
36
37
38
39 public class SynchronizeAction
40 implements ControlFrame {
41
42 public static final String SEND_USER_DATA_SUBTYPE = "synchronize action";
43 private byte address;
44 private boolean fcb;
45
46 public SynchronizeAction(SendUserData old) {
47 this.address = old.getAddress();
48 this.fcb = old.isFcb();
49 }
50
51 public SynchronizeAction() {
52 }
53
54 @Override
55 public byte getAddress() {
56 return address;
57 }
58
59 @Override
60 public ControlCode getControlCode() {
61 return ControlCode.SND_UD;
62 }
63
64
65
66
67 public boolean isFcb() {
68 return fcb;
69 }
70
71 @Override
72 public void setAddress(byte address) {
73 this.address = address;
74 }
75
76
77
78
79 public void setFcb(boolean fcb) {
80 this.fcb = fcb;
81 }
82
83 @Override
84 public String toString() {
85 StringBuilder sb = new StringBuilder();
86 sb.append("control code = ").append(getControlCode()).append('\n');
87 sb.append("isFcb = ").append(isFcb()).append('\n');
88 sb.append(String.format("address = 0x%02X\n", address));
89
90 return sb.toString();
91 }
92
93 @Override
94 public JSONObject toJSON(JsonSerializeType jsonSerializeType) {
95 JSONObject result = new JSONObject();
96 result.accumulate("controlCode",
97 getControlCode());
98 result.accumulate("subType", SEND_USER_DATA_SUBTYPE);
99
100 if (JsonSerializeType.ALL == jsonSerializeType) {
101 result.accumulate("fcb",
102 isFcb());
103 result.accumulate("address", address & 0xFF);
104 }
105
106 return result;
107 }
108
109 @Override
110 public void fromJSON(JSONObject json) {
111 fcb = json.getBoolean("fcb");
112 address = (byte) json.getInt("address");
113 }
114 }