1 package net.sf.mbus4j.master;
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 import java.util.logging.Logger;
32 import net.sf.mbus4j.SlaveStreams;
33 import net.sf.mbus4j.dataframes.MBusMedium;
34 import net.sf.mbus4j.devices.Sender;
35 import net.sf.mbus4j.log.LogUtils;
36
37 import org.junit.After;
38 import org.junit.AfterClass;
39 import static org.junit.Assert.assertEquals;
40 import static org.junit.Assert.assertTrue;
41 import static org.junit.Assert.fail;
42
43 import org.junit.Before;
44 import org.junit.BeforeClass;
45 import org.junit.Ignore;
46 import org.junit.Test;
47
48
49
50
51
52
53 public class MasterTest {
54
55 @BeforeClass
56 public static void setUpClass()
57 throws Exception {
58 }
59
60 @AfterClass
61 public static void tearDownClass()
62 throws Exception {
63 }
64
65 private static Logger log = LogUtils.getMasterLogger();
66 private SlaveStreams slaves;
67 private MBusMaster master;
68
69 public MasterTest() {
70 }
71
72 @Before
73 public void setUp()
74 throws Exception {
75 System.out.println("setUp");
76 slaves = new SlaveStreams();
77 master = new MBusMaster();
78 master.setConnection(slaves);
79 master.open();
80 }
81
82 @After
83 public void tearDown()
84 throws Exception {
85 System.out.println("tearDown");
86 if (master != null) {
87 master.close();
88 }
89 master = null;
90 if (slaves != null) {
91 slaves.close();
92 }
93 slaves = null;
94 }
95
96
97
98
99 @Test
100 @Ignore
101 public void testDeselectBySecondaryAddress() {
102 System.out.println("deselectBySecondaryAddress");
103 master.deselectBySecondaryAddress();
104
105 fail("The test case is a prototype.");
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 @Test(timeout = 60000)
131 @Ignore
132 public void testWidcardSearch()
133 throws Exception {
134 System.out.println("widcardSearch");
135
136 int bcdMaskedId = 0xFFFFFFFF;
137 short bcdMaskedMan = (short) 0xFFFF;
138 byte bcdMaskedVersion = (byte) 0xFF;
139 byte bcdMaskedMedium = (byte) 0xFF;
140 slaves.respondToRequest("680B0B6853FD52FFFFFFFFFFFFFFFF9A16", "E5E5");
141 slaves.respondToRequest("680B0B6853FD52FFFFFF0FFFFFFFFFAA16", 3);
142 slaves.respondToRequest("680B0B6853FD52FFFFFF1FFFFFFFFFBA16", "E5E5");
143 slaves.respondToRequest("680B0B6853FD52FFFFFF10FFFFFFFFAB16", 3);
144 slaves.respondToRequest("680B0B6853FD52FFFFFF11FFFFFFFFAC16", 3);
145 slaves.respondToRequest("680B0B6853FD52FFFFFF12FFFFFFFFAD16", 3);
146 slaves.respondToRequest("680B0B6853FD52FFFFFF13FFFFFFFFAE16", 3);
147 slaves.respondToRequest("680B0B6853FD52FFFFFF14FFFFFFFFAF16", "E5E5");
148 slaves.respondToRequest("680B0B6853FD52FFFF0F14FFFFFFFFBF16", 3);
149 slaves.respondToRequest("680B0B6853FD52FFFF1F14FFFFFFFFCF16", 3);
150 slaves.respondToRequest("680B0B6853FD52FFFF2F14FFFFFFFFDF16", 3);
151 slaves.respondToRequest("680B0B6853FD52FFFF3F14FFFFFFFFEF16", 3);
152 slaves.respondToRequest("680B0B6853FD52FFFF4F14FFFFFFFFFF16", "E5E5");
153 slaves.respondToRequest("680B0B6853FD52FFFF4014FFFFFFFFF016", 3);
154 slaves.respondToRequest("680B0B6853FD52FFFF4114FFFFFFFFF116", 3);
155 slaves.respondToRequest("680B0B6853FD52FFFF4214FFFFFFFFF216", 3);
156 slaves.respondToRequest("680B0B6853FD52FFFF4314FFFFFFFFF316", 3);
157 slaves.respondToRequest("680B0B6853FD52FFFF4414FFFFFFFFF416", 3);
158 slaves.respondToRequest("680B0B6853FD52FFFF4514FFFFFFFFF516", 3);
159 slaves.respondToRequest("680B0B6853FD52FFFF4614FFFFFFFFF616", 3);
160 slaves.respondToRequest("680B0B6853FD52FFFF4714FFFFFFFFF716", 3);
161 slaves.respondToRequest("680B0B6853FD52FFFF4814FFFFFFFFF816", 3);
162 slaves.respondToRequest("680B0B6853FD52FFFF4914FFFFFFFFF916", "E5E5");
163 slaves.respondToRequest("680B0B6853FD52FF0F4914FFFFFFFF0916", 3);
164 slaves.respondToRequest("680B0B6853FD52FF1F4914FFFFFFFF1916", "E5E5");
165 slaves.respondToRequest("680B0B6853FD52FF104914FFFFFFFF0A16", "E5E5");
166 slaves.respondToRequest("680B0B6853FD520F104914FFFFFFFF1A16", "E5E5");
167 slaves.respondToRequest("680B0B6853FD5200104914FFFFFFFF0B16", 3);
168 slaves.respondToRequest("680B0B6853FD5201104914FFFFFFFF0C16", "E5");
169 slaves.respondToRequest("105BFD5816", "680F0F680801720110491457100106000000005716");
170 slaves.respondToRequest("680B0B6853FD5202104914FFFFFFFF0D16", 3);
171 slaves.respondToRequest("680B0B6853FD5203104914FFFFFFFF0E16", 3);
172 slaves.respondToRequest("680B0B6853FD5204104914FFFFFFFF0F16", 3);
173 slaves.respondToRequest("680B0B6853FD5205104914FFFFFFFF1016", 3);
174 slaves.respondToRequest("680B0B6853FD5206104914FFFFFFFF1116", 3);
175 slaves.respondToRequest("680B0B6853FD5207104914FFFFFFFF1216", 3);
176 slaves.respondToRequest("680B0B6853FD5208104914FFFFFFFF1316", "E5");
177 slaves.respondToRequest("105BFD5816", "680F0F68080172081049146745010600000000A316");
178 slaves.respondToRequest("680B0B6853FD5209104914FFFFFFFF1416", 3);
179 slaves.respondToRequest("680B0B6853FD521F104914FFFFFFFF2A16", 3);
180 slaves.respondToRequest("680B0B6853FD522F104914FFFFFFFF3A16", 3);
181 slaves.respondToRequest("680B0B6853FD523F104914FFFFFFFF4A16", 3);
182 slaves.respondToRequest("680B0B6853FD524F104914FFFFFFFF5A16", 3);
183 slaves.respondToRequest("680B0B6853FD525F104914FFFFFFFF6A16", 3);
184 slaves.respondToRequest("680B0B6853FD526F104914FFFFFFFF7A16", 3);
185 slaves.respondToRequest("680B0B6853FD527F104914FFFFFFFF8A16", 3);
186 slaves.respondToRequest("680B0B6853FD528F104914FFFFFFFF9A16", 3);
187 slaves.respondToRequest("680B0B6853FD529F104914FFFFFFFFAA16", 3);
188 slaves.respondToRequest("680B0B6853FD52FF114914FFFFFFFF0B16", 3);
189 slaves.respondToRequest("680B0B6853FD52FF124914FFFFFFFF0C16", 3);
190 slaves.respondToRequest("680B0B6853FD52FF134914FFFFFFFF0D16", 3);
191 slaves.respondToRequest("680B0B6853FD52FF144914FFFFFFFF0E16", 3);
192 slaves.respondToRequest("680B0B6853FD52FF154914FFFFFFFF0F16", 3);
193 slaves.respondToRequest("680B0B6853FD52FF164914FFFFFFFF1016", 3);
194 slaves.respondToRequest("680B0B6853FD52FF174914FFFFFFFF1116", 3);
195 slaves.respondToRequest("680B0B6853FD52FF184914FFFFFFFF1216", 3);
196 slaves.respondToRequest("680B0B6853FD52FF194914FFFFFFFF1316", 3);
197 slaves.respondToRequest("680B0B6853FD52FF2F4914FFFFFFFF2916", 3);
198 slaves.respondToRequest("680B0B6853FD52FF3F4914FFFFFFFF3916", 3);
199 slaves.respondToRequest("680B0B6853FD52FF4F4914FFFFFFFF4916", 3);
200 slaves.respondToRequest("680B0B6853FD52FF5F4914FFFFFFFF5916", 3);
201 slaves.respondToRequest("680B0B6853FD52FF6F4914FFFFFFFF6916", 3);
202 slaves.respondToRequest("680B0B6853FD52FF7F4914FFFFFFFF7916", 3);
203 slaves.respondToRequest("680B0B6853FD52FF8F4914FFFFFFFF8916", 3);
204 slaves.respondToRequest("680B0B6853FD52FF9F4914FFFFFFFF9916", 3);
205 slaves.respondToRequest("680B0B6853FD52FFFF5F14FFFFFFFF0F16", 3);
206 slaves.respondToRequest("680B0B6853FD52FFFF6F14FFFFFFFF1F16", 3);
207 slaves.respondToRequest("680B0B6853FD52FFFF7F14FFFFFFFF2F16", 3);
208 slaves.respondToRequest("680B0B6853FD52FFFF8F14FFFFFFFF3F16", 3);
209 slaves.respondToRequest("680B0B6853FD52FFFF9F14FFFFFFFF4F16", 3);
210 slaves.respondToRequest("680B0B6853FD52FFFFFF15FFFFFFFFB016", 3);
211 slaves.respondToRequest("680B0B6853FD52FFFFFF16FFFFFFFFB116", 3);
212 slaves.respondToRequest("680B0B6853FD52FFFFFF17FFFFFFFFB216", 3);
213 slaves.respondToRequest("680B0B6853FD52FFFFFF18FFFFFFFFB316", 3);
214 slaves.respondToRequest("680B0B6853FD52FFFFFF19FFFFFFFFB416", 3);
215 slaves.respondToRequest("680B0B6853FD52FFFFFF2FFFFFFFFFCA16", 3);
216 slaves.respondToRequest("680B0B6853FD52FFFFFF3FFFFFFFFFDA16", "E5");
217 slaves.respondToRequest("105BFD5816", "680F0F680801723348103210200102000000006B16");
218 slaves.respondToRequest("680B0B6853FD52FFFFFF4FFFFFFFFFEA16", 3);
219 slaves.respondToRequest("680B0B6853FD52FFFFFF5FFFFFFFFFFA16", 3);
220 slaves.respondToRequest("680B0B6853FD52FFFFFF6FFFFFFFFF0A16", 3);
221 slaves.respondToRequest("680B0B6853FD52FFFFFF7FFFFFFFFF1A16", "E5");
222 slaves.respondToRequest("105BFD5816", "680F0F68080172103254761020010300000000BB16");
223 slaves.respondToRequest("680B0B6853FD52FFFFFF8FFFFFFFFF2A16", 3);
224 slaves.respondToRequest("680B0B6853FD52FFFFFF9FFFFFFFFF3A16", 3);
225 slaves.replay();
226 master.widcardSearch(bcdMaskedId, bcdMaskedMan, bcdMaskedVersion, bcdMaskedMedium, Sender.DEFAULT_SEND_TRIES);
227 assertTrue(slaves.isOK());
228 log.info("widcardSearch finished");
229 assertEquals(4,
230 master.deviceCount());
231 assertEquals(1,
232 master.getDevice(0).getAddress());
233 assertEquals(14491001,
234 master.getDevice(0).getIdentNumber());
235 assertEquals("DBW",
236 master.getDevice(0).getManufacturer());
237 assertEquals(MBusMedium.HOT_WATER,
238 master.getDevice(0).getMedium());
239 assertEquals(1,
240 master.getDevice(0).getVersion());
241 assertEquals(1,
242 master.getDevice(1).getAddress());
243 assertEquals(14491008,
244 master.getDevice(1).getIdentNumber());
245 assertEquals("QKG",
246 master.getDevice(1).getManufacturer());
247 assertEquals(MBusMedium.HOT_WATER,
248 master.getDevice(1).getMedium());
249 assertEquals(1,
250 master.getDevice(1).getVersion());
251 assertEquals(1,
252 master.getDevice(2).getAddress());
253 assertEquals(32104833,
254 master.getDevice(2).getIdentNumber());
255 assertEquals("H@P",
256 master.getDevice(2).getManufacturer());
257 assertEquals(MBusMedium.ELECTRICITY,
258 master.getDevice(2).getMedium());
259 assertEquals(1,
260 master.getDevice(2).getVersion());
261 assertEquals(1,
262 master.getDevice(3).getAddress());
263 assertEquals(76543210,
264 master.getDevice(3).getIdentNumber());
265 assertEquals("H@P",
266 master.getDevice(3).getManufacturer());
267 assertEquals(MBusMedium.GAS,
268 master.getDevice(3).getMedium());
269 assertEquals(1,
270 master.getDevice(3).getVersion());
271 }
272
273 @Test
274 @Ignore
275 public void testStdResp()
276 throws Exception {
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314 }
315
316 }