1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.fosstrak.llrp.commander.editors;
23
24
25
26
27
28
29
30
31 public class BinaryMessage {
32
33 private BinarySingleValue reserved, version, msgType, msgLength, msgID;
34 private BinarySingleValue parameters;
35 private BinarySingleValue[] paramArr;
36
37 private final static String INVALID_VALUE = "Invalid";
38 private final static String CAPTION_RSV = "RSV";
39 private final static String CAPTION_VERSION = "Version";
40 private final static String CAPTION_MSG_TYP = "Message Type";
41 private final static String CAPTION_LENGTH = "Message Length in Bits";
42 private final static String CAPTION_MSG_ID = "Message ID";
43 private final static String CAPTION_PARAM = "Fields and Parameters";
44
45
46
47
48 public BinaryMessage() {
49 reserved = initValue(CAPTION_RSV, INVALID_VALUE);
50 version = initValue(CAPTION_VERSION, INVALID_VALUE);
51 msgType = initValue(CAPTION_MSG_TYP, INVALID_VALUE);
52 msgLength = initValue(CAPTION_LENGTH, INVALID_VALUE);
53 msgID = initValue(CAPTION_MSG_ID, INVALID_VALUE);
54 parameters = initValue(CAPTION_PARAM, INVALID_VALUE);
55 paramArr = initArrValue(CAPTION_PARAM, null);
56 }
57
58
59
60
61
62
63
64
65 public BinaryMessage(String aContent) throws Exception {
66
67 BinaryMessageHelper helper = new BinaryMessageHelper(aContent);
68 reserved = initValue(CAPTION_RSV, helper.getReserved());
69 version = initValue(CAPTION_VERSION, helper.getVersion());
70 msgType = initValue(CAPTION_MSG_TYP, helper.getMessageType());
71 msgLength = initValue(CAPTION_LENGTH, helper.getLength());
72 msgID = initValue(CAPTION_MSG_ID, helper.getMessageID());
73 parameters = initValue(CAPTION_PARAM, helper.getParameters());
74 paramArr = initArrValue(CAPTION_PARAM, helper.getArrParameters(
75 BinaryMessageHelper.DEFAULT_LINE_LENGTH,
76 BinaryMessageHelper.DEFAULT_CHUNK_LENGTH,
77 BinaryMessageHelper.DEFAULT_CHUNK_DELIMITER));
78 }
79
80
81
82
83
84
85
86
87 private BinarySingleValue initValue(String aName, String aValue) {
88 BinarySingleValue aEntry = new BinarySingleValue(this);
89 aEntry.setKey(aName);
90 aEntry.setValue(aValue);
91
92 return aEntry;
93 }
94
95
96
97
98
99
100
101 private BinarySingleValue[] initArrValue(String name, String[] value) {
102 if (null == value) {
103 BinarySingleValue v = new BinarySingleValue(this);
104 v.setKey(name);
105 v.setValue(INVALID_VALUE);
106 return new BinarySingleValue[] { v };
107 }
108
109 BinarySingleValue[] arr = new BinarySingleValue[value.length];
110 for (int i=0; i<value.length; i++) {
111 arr[i] = new BinarySingleValue(this);
112 arr[i].setValue(value[i]);
113 }
114 arr[0].setKey(name);
115 return arr;
116 }
117
118
119
120
121
122
123 public BinarySingleValue getReserved() {
124 return reserved;
125 }
126
127
128
129
130
131
132 public BinarySingleValue getVersion() {
133 return version;
134 }
135
136
137
138
139
140
141 public BinarySingleValue getMsgType() {
142 return msgType;
143 }
144
145
146
147
148
149
150 public BinarySingleValue getMsgLength() {
151 return msgLength;
152 }
153
154
155
156
157
158
159 public BinarySingleValue getMsgID() {
160 return msgID;
161 }
162
163
164
165
166
167
168 public BinarySingleValue getParameters() {
169 return parameters;
170 }
171
172
173
174
175
176
177 public BinarySingleValue[] getSplitParameters() {
178 return paramArr;
179 }
180 }