32 BOOST_TEST(regs.hasRegister(
"/SomeTopLevelRegister"));
33 BOOST_TEST(regs.hasRegister(
"BSP.VERSION"));
34 BOOST_TEST(regs.hasRegister(
"/BSP/VERSION"));
35 BOOST_TEST(regs.hasRegister(
"DAQ.SIMPLE2D.A"));
38 auto reg = regs.getBackendRegister(
"/SomeTopLevelRegister");
39 BOOST_TEST(reg.pathName ==
"/SomeTopLevelRegister");
40 BOOST_TEST(reg.nElements == 1);
41 BOOST_TEST(reg.elementPitchBits == 4 * 8);
42 BOOST_TEST(reg.bar == 0);
43 BOOST_TEST(reg.address == 32);
44 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_WRITE);
45 BOOST_REQUIRE(reg.channels.size() == 1);
46 BOOST_TEST(reg.channels[0].bitOffset == 0);
47 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
48 BOOST_TEST(reg.channels[0].width == 32);
49 BOOST_TEST(reg.channels[0].nFractionalBits == 8);
50 BOOST_TEST(reg.channels[0].signedFlag ==
true);
51 BOOST_TEST(reg.isBitRange ==
false);
52 BOOST_TEST(reg.description ==
"This is an example register");
53 BOOST_TEST(reg.engineeringUnit ==
"mV");
56 auto reg = regs.getBackendRegister(
"BSP.VERSION");
57 BOOST_TEST(reg.pathName ==
"/BSP/VERSION");
58 BOOST_TEST(reg.nElements == 1);
59 BOOST_TEST(reg.elementPitchBits == 4 * 8);
60 BOOST_TEST(reg.bar == 0);
61 BOOST_TEST(reg.address == 4);
62 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
63 BOOST_REQUIRE(reg.channels.size() == 1);
64 BOOST_TEST(reg.channels[0].bitOffset == 0);
65 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
66 BOOST_TEST(reg.channels[0].width == 32);
67 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
68 BOOST_TEST(reg.channels[0].signedFlag ==
false);
69 BOOST_TEST(reg.isBitRange ==
false);
72 auto reg = regs.getBackendRegister(
"BSP");
73 BOOST_TEST(reg.pathName ==
"/BSP");
74 BOOST_TEST(reg.nElements == 19201);
75 BOOST_TEST(reg.elementPitchBits == 4 * 8);
76 BOOST_TEST(reg.bar == 0);
77 BOOST_TEST(reg.address == 0);
78 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_WRITE);
79 BOOST_REQUIRE(reg.channels.size() == 1);
80 BOOST_TEST(reg.channels[0].bitOffset == 0);
81 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
82 BOOST_TEST(reg.channels[0].width == 32);
83 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
84 BOOST_TEST(reg.channels[0].signedFlag ==
false);
85 BOOST_TEST(reg.isBitRange ==
false);
88 auto reg = regs.getBackendRegister(
"APP.STATUS");
89 BOOST_TEST(reg.pathName ==
"/APP/STATUS");
90 BOOST_TEST(reg.nElements == 1);
91 BOOST_TEST(reg.elementPitchBits == 4 * 8);
92 BOOST_TEST(reg.bar == 2);
93 BOOST_TEST(reg.address == 0x8000);
94 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
95 BOOST_REQUIRE(reg.channels.size() == 1);
96 BOOST_TEST(reg.channels[0].bitOffset == 0);
97 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
99 BOOST_TEST(reg.channels[0].width == 32);
100 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
101 BOOST_TEST(reg.channels[0].signedFlag ==
false);
102 BOOST_TEST(reg.isBitRange ==
false);
105 auto reg = regs.getBackendRegister(
"APP.STATUS.ProbeLimiter");
106 BOOST_TEST(reg.pathName ==
"/APP/STATUS/ProbeLimiter");
107 BOOST_TEST(reg.nElements == 1);
108 BOOST_TEST(reg.elementPitchBits == 4 * 8);
109 BOOST_TEST(reg.bar == 2);
110 BOOST_TEST(reg.address == 0x8000);
111 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
112 BOOST_TEST(reg.channels.size() == 1);
113 BOOST_REQUIRE(reg.channels.size() == 1);
114 BOOST_TEST(reg.channels[0].bitOffset == 0);
115 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
117 BOOST_TEST(reg.channels[0].width == 1);
118 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
119 BOOST_TEST(reg.channels[0].signedFlag ==
false);
120 BOOST_TEST(reg.isBitRange ==
true);
123 auto reg = regs.getBackendRegister(
"APP.STATUS.ExternalInterlock");
124 BOOST_TEST(reg.pathName ==
"/APP/STATUS/ExternalInterlock");
125 BOOST_TEST(reg.nElements == 1);
126 BOOST_TEST(reg.elementPitchBits == 4 * 8);
127 BOOST_TEST(reg.bar == 2);
128 BOOST_TEST(reg.address == 0x8000);
129 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
130 BOOST_REQUIRE(reg.channels.size() == 1);
131 BOOST_TEST(reg.channels[0].bitOffset == 1);
132 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
134 BOOST_TEST(reg.channels[0].width == 1);
135 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
136 BOOST_TEST(reg.channels[0].signedFlag ==
false);
137 BOOST_TEST(reg.isBitRange ==
true);
140 auto reg = regs.getBackendRegister(
"APP.STATUS.ErrorCounter");
141 BOOST_TEST(reg.pathName ==
"/APP/STATUS/ErrorCounter");
142 BOOST_TEST(reg.nElements == 1);
143 BOOST_TEST(reg.elementPitchBits == 4 * 8);
144 BOOST_TEST(reg.bar == 2);
145 BOOST_TEST(reg.address == 0x8000);
146 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
147 BOOST_REQUIRE(reg.channels.size() == 1);
148 BOOST_TEST(reg.channels[0].bitOffset == 2);
149 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
151 BOOST_TEST(reg.channels[0].width == 3);
152 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
153 BOOST_TEST(reg.channels[0].signedFlag ==
false);
154 BOOST_TEST(reg.isBitRange ==
true);
157 auto reg = regs.getBackendRegister(
"APP.LARGE_STATUS");
158 BOOST_TEST(reg.pathName ==
"/APP/LARGE_STATUS");
159 BOOST_TEST(reg.nElements == 1);
160 BOOST_TEST(reg.elementPitchBits == 8 * 8);
161 BOOST_TEST(reg.bar == 2);
162 BOOST_TEST(reg.address == 0x8004);
163 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
164 BOOST_REQUIRE(reg.channels.size() == 1);
165 BOOST_TEST(reg.channels[0].bitOffset == 0);
166 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
168 BOOST_TEST(reg.channels[0].width == 64);
169 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
170 BOOST_TEST(reg.channels[0].signedFlag ==
false);
171 BOOST_TEST(reg.isBitRange ==
false);
174 auto reg = regs.getBackendRegister(
"APP.LARGE_STATUS.ProbeLimiter");
175 BOOST_TEST(reg.pathName ==
"/APP/LARGE_STATUS/ProbeLimiter");
176 BOOST_TEST(reg.nElements == 1);
177 BOOST_TEST(reg.elementPitchBits == 8 * 8);
178 BOOST_TEST(reg.bar == 2);
179 BOOST_TEST(reg.address == 0x8004);
180 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
181 BOOST_TEST(reg.channels.size() == 1);
182 BOOST_REQUIRE(reg.channels.size() == 1);
183 BOOST_TEST(reg.channels[0].bitOffset == 0);
184 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
186 BOOST_TEST(reg.channels[0].width == 1);
187 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
188 BOOST_TEST(reg.channels[0].signedFlag ==
false);
189 BOOST_TEST(reg.isBitRange ==
true);
192 auto reg = regs.getBackendRegister(
"APP.LARGE_STATUS.ExternalInterlock");
193 BOOST_TEST(reg.pathName ==
"/APP/LARGE_STATUS/ExternalInterlock");
194 BOOST_TEST(reg.nElements == 1);
195 BOOST_TEST(reg.elementPitchBits == 8 * 8);
196 BOOST_TEST(reg.bar == 2);
197 BOOST_TEST(reg.address == 0x8004);
198 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
199 BOOST_REQUIRE(reg.channels.size() == 1);
200 BOOST_TEST(reg.channels[0].bitOffset == 34);
201 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
203 BOOST_TEST(reg.channels[0].width == 1);
204 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
205 BOOST_TEST(reg.channels[0].signedFlag ==
false);
206 BOOST_TEST(reg.isBitRange ==
true);
209 auto reg = regs.getBackendRegister(
"APP.LARGE_STATUS.ErrorCounter");
210 BOOST_TEST(reg.pathName ==
"/APP/LARGE_STATUS/ErrorCounter");
211 BOOST_TEST(reg.nElements == 1);
212 BOOST_TEST(reg.elementPitchBits == 8 * 8);
213 BOOST_TEST(reg.bar == 2);
214 BOOST_TEST(reg.address == 0x8004);
215 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
216 BOOST_REQUIRE(reg.channels.size() == 1);
217 BOOST_TEST(reg.channels[0].bitOffset == 2);
218 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
220 BOOST_TEST(reg.channels[0].width == 3);
221 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
222 BOOST_TEST(reg.channels[0].signedFlag ==
false);
223 BOOST_TEST(reg.isBitRange ==
true);
226 auto reg = regs.getBackendRegister(
"APP.SomeTable");
227 BOOST_TEST(reg.pathName ==
"/APP/SomeTable");
228 BOOST_TEST(reg.nElements == 16384);
229 BOOST_TEST(reg.elementPitchBits == 2 * 8);
230 BOOST_TEST(reg.bar == 0);
231 BOOST_TEST(reg.address == 2048);
232 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::WRITE_ONLY);
233 BOOST_REQUIRE(reg.channels.size() == 1);
234 BOOST_TEST(reg.channels[0].bitOffset == 0);
235 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
236 BOOST_TEST(reg.channels[0].width == 14);
237 BOOST_TEST(reg.channels[0].nFractionalBits == 10);
238 BOOST_TEST(reg.channels[0].signedFlag ==
true);
239 BOOST_TEST(!reg.doubleBuffer.has_value());
240 BOOST_TEST(reg.isBitRange ==
false);
243 auto reg = regs.getBackendRegister(
"DAQ.CTRL");
244 BOOST_TEST(reg.pathName ==
"/DAQ/CTRL");
245 BOOST_TEST(reg.nElements == 16384);
246 BOOST_TEST(reg.elementPitchBits == 64 * 8);
247 BOOST_TEST(reg.bar == 13);
248 BOOST_TEST(reg.address == 0x40000);
249 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::INTERRUPT);
250 BOOST_TEST(reg.interruptId == std::vector<size_t>({3, 0, 1}), boost::test_tools::per_element());
251 BOOST_TEST(reg.doubleBuffer.has_value());
252 BOOST_TEST(reg.doubleBuffer->address == 0x40200);
253 BOOST_TEST(reg.doubleBuffer->inactiveBufferRegisterPath ==
"/DAQ.DOUBLE_BUF.INACTIVE_BUF_ID");
254 BOOST_TEST(reg.doubleBuffer->enableRegisterPath ==
"/DAQ.DOUBLE_BUF.ENA");
256 BOOST_REQUIRE(reg.channels.size() == 5);
258 BOOST_TEST(reg.channels[0].bitOffset == 0);
259 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
260 BOOST_TEST(reg.channels[0].width == 16);
261 BOOST_TEST(reg.channels[0].nFractionalBits == -2);
262 BOOST_TEST(reg.channels[0].signedFlag ==
true);
264 BOOST_TEST(reg.channels[1].bitOffset == 2 * 8);
265 BOOST_CHECK(reg.channels[1].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
266 BOOST_TEST(reg.channels[1].width == 16);
267 BOOST_TEST(reg.channels[1].nFractionalBits == -2);
268 BOOST_TEST(reg.channels[1].signedFlag ==
true);
270 BOOST_TEST(reg.channels[2].bitOffset == 4 * 8);
271 BOOST_CHECK(reg.channels[2].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
272 BOOST_TEST(reg.channels[2].width == 32);
273 BOOST_TEST(reg.channels[2].nFractionalBits == 0);
274 BOOST_TEST(reg.channels[2].signedFlag ==
false);
275 BOOST_TEST(reg.isBitRange ==
false);
281 auto reg = regs.getBackendRegister(
"DAQ.CTRL.errorI");
282 BOOST_TEST(reg.pathName ==
"/DAQ/CTRL/errorI");
283 BOOST_TEST(reg.engineeringUnit ==
"bits");
284 BOOST_TEST(reg.description ==
"Error signal in I");
285 BOOST_TEST(reg.nElements == 16384);
286 BOOST_TEST(reg.elementPitchBits == 64 * 8);
287 BOOST_TEST(reg.bar == 13);
288 BOOST_TEST(reg.address == 0x40000);
289 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::INTERRUPT);
291 BOOST_REQUIRE(reg.channels.size() == 1);
292 BOOST_TEST(reg.channels[0].bitOffset == 0);
293 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
294 BOOST_TEST(reg.channels[0].width == 16);
295 BOOST_TEST(reg.channels[0].nFractionalBits == -2);
296 BOOST_TEST(reg.channels[0].signedFlag ==
true);
300 auto reg = regs.getBackendRegister(
"DAQ.CTRL.errorQ");
301 BOOST_TEST(reg.pathName ==
"/DAQ/CTRL/errorQ");
302 BOOST_TEST(reg.engineeringUnit ==
"bits");
303 BOOST_TEST(reg.description ==
"Error signal in Q");
304 BOOST_TEST(reg.nElements == 16384);
305 BOOST_TEST(reg.elementPitchBits == 64 * 8);
306 BOOST_TEST(reg.bar == 13);
307 BOOST_TEST(reg.address == 0x40000 + 2);
308 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::INTERRUPT);
310 BOOST_REQUIRE(reg.channels.size() == 1);
311 BOOST_TEST(reg.channels[0].bitOffset == 0);
312 BOOST_TEST(reg.channels[0].width == 16);
318 auto reg = regs.getBackendRegister(
"DAQ.SIMPLE2D.A");
319 BOOST_TEST(reg.pathName ==
"/DAQ/SIMPLE2D/A");
320 BOOST_TEST(reg.bar == 13);
321 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::READ_ONLY);
324 BOOST_REQUIRE(reg.channels.size() == 1);
325 BOOST_TEST(reg.channels[0].bitOffset == 0);
326 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
327 BOOST_TEST(reg.channels[0].width == 16);
331 auto reg = regs.getBackendRegister(
"DAQ.FD");
332 BOOST_TEST(reg.pathName ==
"/DAQ/FD");
333 BOOST_TEST(reg.nElements == 16384);
334 BOOST_TEST(reg.elementPitchBits == 64 * 8);
335 BOOST_TEST(reg.bar == 13);
336 BOOST_TEST(reg.address == 0x81000);
337 BOOST_CHECK(reg.registerAccess == NumericAddressedRegisterInfo::Access::INTERRUPT);
338 BOOST_TEST(reg.interruptId == std::vector<size_t>({0}), boost::test_tools::per_element());
340 BOOST_REQUIRE(reg.channels.size() == 2);
342 BOOST_TEST(reg.channels[0].bitOffset == 0);
343 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
344 BOOST_TEST(reg.channels[0].width == 16);
345 BOOST_TEST(reg.channels[0].nFractionalBits == -2);
346 BOOST_TEST(reg.channels[0].signedFlag ==
true);
348 BOOST_TEST(reg.channels[1].bitOffset == 2 * 8);
349 BOOST_CHECK(reg.channels[1].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
350 BOOST_TEST(reg.channels[1].width == 16);
351 BOOST_TEST(reg.channels[1].nFractionalBits == -2);
352 BOOST_TEST(reg.channels[1].signedFlag ==
true);
353 BOOST_TEST(reg.isBitRange ==
false);
356 auto reg = regs.getBackendRegister(
"DAQ.DOUBLE_BUF.ENA");
357 BOOST_TEST(reg.pathName ==
"/DAQ/DOUBLE_BUF/ENA");
358 BOOST_TEST(reg.nElements == 3);
359 BOOST_TEST(reg.elementPitchBits == 4 * 8);
360 BOOST_TEST(reg.bar == 0);
361 BOOST_TEST(reg.address == 1234);
362 BOOST_REQUIRE(reg.channels.size() == 1);
363 BOOST_TEST(reg.channels[0].bitOffset == 0);
364 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
365 BOOST_TEST(reg.channels[0].width == 1);
366 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
367 BOOST_TEST(reg.channels[0].signedFlag ==
false);
368 BOOST_TEST(reg.isBitRange ==
false);
371 auto reg = regs.getBackendRegister(
"DAQ.DOUBLE_BUF.INACTIVE_BUF_ID");
372 BOOST_TEST(reg.pathName ==
"/DAQ/DOUBLE_BUF/INACTIVE_BUF_ID");
373 BOOST_TEST(reg.nElements == 3);
374 BOOST_TEST(reg.elementPitchBits == 4 * 8);
375 BOOST_TEST(reg.bar == 0);
376 BOOST_TEST(reg.address == 1238);
377 BOOST_REQUIRE(reg.channels.size() == 1);
378 BOOST_TEST(reg.channels[0].bitOffset == 0);
379 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
380 BOOST_TEST(reg.channels[0].width == 1);
381 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
382 BOOST_TEST(reg.channels[0].signedFlag ==
false);
383 BOOST_TEST(reg.isBitRange ==
false);
386 auto reg = regs.getBackendRegister(
"DAQ.FD.BUF0");
387 BOOST_TEST(reg.pathName ==
"/DAQ/FD/BUF0");
388 BOOST_TEST(reg.nElements == 16384);
389 BOOST_TEST(reg.elementPitchBits == 64 * 8);
390 BOOST_TEST(reg.bar == 13);
391 BOOST_TEST(reg.address == 0x81000);
393 BOOST_REQUIRE(reg.channels.size() == 2);
395 BOOST_TEST(reg.channels[0].bitOffset == 0);
396 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
397 BOOST_TEST(reg.channels[0].width == 16);
398 BOOST_TEST(reg.channels[0].nFractionalBits == -2);
399 BOOST_TEST(reg.channels[0].signedFlag ==
true);
401 BOOST_TEST(reg.channels[1].bitOffset == 2 * 8);
402 BOOST_CHECK(reg.channels[1].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
403 BOOST_TEST(reg.channels[1].width == 16);
404 BOOST_TEST(reg.channels[1].nFractionalBits == -2);
405 BOOST_TEST(reg.channels[1].signedFlag ==
true);
406 BOOST_TEST(reg.isBitRange ==
false);
409 auto reg = regs.getBackendRegister(
"DAQ.FD.BUF1");
410 BOOST_TEST(reg.pathName ==
"/DAQ/FD/BUF1");
411 BOOST_TEST(reg.nElements == 16384);
412 BOOST_TEST(reg.elementPitchBits == 64 * 8);
413 BOOST_TEST(reg.bar == 13);
415 BOOST_REQUIRE(reg.channels.size() == 2);
417 BOOST_TEST(reg.channels[0].bitOffset == 0);
418 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
419 BOOST_TEST(reg.channels[0].width == 16);
420 BOOST_TEST(reg.channels[0].nFractionalBits == -2);
421 BOOST_TEST(reg.channels[0].signedFlag ==
true);
423 BOOST_TEST(reg.channels[1].bitOffset == 2 * 8);
424 BOOST_CHECK(reg.channels[1].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
425 BOOST_TEST(reg.channels[1].width == 16);
426 BOOST_TEST(reg.channels[1].nFractionalBits == -2);
427 BOOST_TEST(reg.channels[1].signedFlag ==
true);
428 BOOST_TEST(reg.isBitRange ==
false);
431 auto reg = regs.getBackendRegister(
"DAQ.MUX_SEL");
432 BOOST_TEST(reg.pathName ==
"/DAQ/MUX_SEL");
433 BOOST_TEST(reg.nElements == 1);
434 BOOST_TEST(reg.elementPitchBits == 4 * 8);
435 BOOST_TEST(reg.bar == 0);
436 BOOST_TEST(reg.address == 1242);
437 BOOST_REQUIRE(reg.channels.size() == 1);
438 BOOST_TEST(reg.channels[0].bitOffset == 0);
439 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
440 BOOST_TEST(reg.channels[0].width == 2);
441 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
442 BOOST_TEST(reg.channels[0].signedFlag ==
false);
443 BOOST_TEST(reg.isBitRange ==
false);
446 auto reg = regs.getBackendRegister(
"DAQ.MACRO_PULSE_NUMBER");
447 BOOST_TEST(reg.pathName ==
"/DAQ/MACRO_PULSE_NUMBER");
448 BOOST_TEST(reg.nElements == 1);
449 BOOST_TEST(reg.elementPitchBits == 4 * 8);
450 BOOST_TEST(reg.bar == 13);
451 BOOST_TEST(reg.address == 0x8103C);
452 BOOST_REQUIRE(reg.channels.size() == 1);
453 BOOST_TEST(reg.channels[0].bitOffset == 0);
454 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::FIXED_POINT);
455 BOOST_TEST(reg.channels[0].width == 32);
456 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
457 BOOST_TEST(reg.channels[0].signedFlag ==
false);
458 BOOST_TEST(reg.isBitRange ==
false);
461 auto reg = regs.getBackendRegister(
"BSP.SOME_INFO");
462 BOOST_TEST(reg.pathName ==
"/BSP/SOME_INFO");
463 BOOST_TEST(reg.nElements == 1);
464 BOOST_TEST(reg.elementPitchBits == 40 * 8);
465 BOOST_TEST(reg.bar == 0);
466 BOOST_TEST(reg.address == 8);
467 BOOST_REQUIRE(reg.channels.size() == 1);
468 BOOST_TEST(reg.channels[0].bitOffset == 0);
469 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::ASCII);
470 BOOST_TEST(reg.channels[0].width == 32);
471 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
472 BOOST_TEST(reg.channels[0].signedFlag ==
false);
473 BOOST_TEST(reg.isBitRange ==
false);
476 auto reg = regs.getBackendRegister(
"APP.SomeFloat");
477 BOOST_TEST(reg.pathName ==
"/APP/SomeFloat");
478 BOOST_TEST(reg.nElements == 1);
479 BOOST_TEST(reg.elementPitchBits == 4 * 8);
480 BOOST_TEST(reg.bar == 0);
481 BOOST_TEST(reg.address == 4096);
482 BOOST_REQUIRE(reg.channels.size() == 1);
483 BOOST_TEST(reg.channels[0].bitOffset == 0);
484 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::IEEE754);
485 BOOST_TEST(reg.channels[0].width == 32);
486 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
487 BOOST_TEST(reg.channels[0].signedFlag ==
true);
488 BOOST_TEST(reg.isBitRange ==
false);
491 auto reg = regs.getBackendRegister(
"BSP.VOID_INTERRUPT_0");
492 BOOST_TEST(reg.pathName ==
"/BSP/VOID_INTERRUPT_0");
493 BOOST_TEST(reg.nElements == 0);
494 BOOST_REQUIRE(reg.channels.size() == 1);
495 BOOST_TEST(reg.channels[0].bitOffset == 0);
496 BOOST_CHECK(reg.channels[0].dataType == NumericAddressedRegisterInfo::Type::VOID);
497 BOOST_TEST(reg.channels[0].width == 0);
498 BOOST_TEST(reg.channels[0].nFractionalBits == 0);
499 BOOST_TEST(reg.channels[0].signedFlag ==
false);
500 BOOST_TEST(reg.isBitRange ==
false);
503 BOOST_TEST(metas.getNumberOfMetadata() == 6);
505 BOOST_TEST(metas.getMetadata(
"mapfileRevision") ==
"1.8.3-0-gdeadbeef");
506 BOOST_TEST(metas.getMetadata(
"someRandomEntry") ==
"some random value");
508 BOOST_TEST(metas.getMetadata(
"![0]") == R
"({"INTC":{"options":[],"path":"DAQ","version":1}})");
509 BOOST_TEST(metas.getMetadata("![3]") == R
"({"INTC":{"options":["MER"],"path":"MY_INTC","version":1}})");
510 BOOST_TEST(metas.getMetadata("![3,0]") == R
"({"INTC":{"options":[],"path":"MY_INTC.SUB0","version":1}})");
511 BOOST_TEST(metas.getMetadata("![3,1]") == R
"({"INTC":{"options":["MER"],"path":"MY_INTC.SUB1","version":1}})");
513 auto loi = regs.getListOfInterrupts();
514 BOOST_TEST(loi.size() == 2);
515 BOOST_CHECK(loi.find({0}) != loi.end());
516 BOOST_CHECK(loi.find({3, 0, 1}) != loi.end());