MIP_SDK  v3.0.0
MicroStrain Communications Library for embedded systems
commands_base.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
6 
8 
9 namespace mip::metadata
10 {
11 
12 
13 template<>
14 struct MetadataFor<commands_base::Ping>
15 {
17 
18  static constexpr inline FieldInfo value = {
19  /* .name = */ "commands_base::Ping",
20  /* .title = */ "Ping",
21  /* .docs = */ "Test Communications with a device.\n\nThe Device will respond with an ACK, if present and operating correctly.\n\nIf the device is not in a normal operating mode, it may NACK.",
22  /* .parameters = */ {},
23  /* .descriptor = */ type::DESCRIPTOR,
24  /* .functions = */ NO_FUNCTIONS,
25  /* .proprietary = */ false,
26  /* .response = */ nullptr,
27  };
28 };
29 
30 template<>
31 struct MetadataFor<commands_base::SetIdle>
32 {
34 
35  static constexpr inline FieldInfo value = {
36  /* .name = */ "commands_base::SetIdle",
37  /* .title = */ "Set to idle",
38  /* .docs = */ "Turn off all device data streams.\n\nThe Device will respond with an ACK, if present and operating correctly.\nThis command will suspend streaming (if enabled) or wake the device from sleep (if sleeping) to allow it to respond to status and setup commands.\nYou may restore the device mode by issuing the Resume command.",
39  /* .parameters = */ {},
40  /* .descriptor = */ type::DESCRIPTOR,
41  /* .functions = */ NO_FUNCTIONS,
42  /* .proprietary = */ false,
43  /* .response = */ nullptr,
44  };
45 };
46 
47 template<>
48 struct MetadataFor<commands_base::BaseDeviceInfo>
49 {
51 
52  static constexpr inline ParameterInfo parameters[] = {
53  {
54  /* .name = */ "firmware_version",
55  /* .docs = */ "",
56  /* .type = */ {Type::U16, nullptr},
57  /* .accessor = */ nullptr, //utils::access<type, uint16_t, &type::firmware_version>,
58  /* .attributes = */ NO_FUNCTIONS,
59  /* .count = */ 1,
60  /* .condition = */ {},
61  },
62  {
63  /* .name = */ "model_name",
64  /* .docs = */ "",
65  /* .type = */ {Type::CHAR, nullptr},
66  /* .accessor = */ nullptr, //utils::access<type, char, &type::model_name>,
67  /* .attributes = */ NO_FUNCTIONS,
68  /* .count = */ 16,
69  /* .condition = */ {},
70  },
71  {
72  /* .name = */ "model_number",
73  /* .docs = */ "",
74  /* .type = */ {Type::CHAR, nullptr},
75  /* .accessor = */ nullptr, //utils::access<type, char, &type::model_number>,
76  /* .attributes = */ NO_FUNCTIONS,
77  /* .count = */ 16,
78  /* .condition = */ {},
79  },
80  {
81  /* .name = */ "serial_number",
82  /* .docs = */ "",
83  /* .type = */ {Type::CHAR, nullptr},
84  /* .accessor = */ nullptr, //utils::access<type, char, &type::serial_number>,
85  /* .attributes = */ NO_FUNCTIONS,
86  /* .count = */ 16,
87  /* .condition = */ {},
88  },
89  {
90  /* .name = */ "lot_number",
91  /* .docs = */ "",
92  /* .type = */ {Type::CHAR, nullptr},
93  /* .accessor = */ nullptr, //utils::access<type, char, &type::lot_number>,
94  /* .attributes = */ NO_FUNCTIONS,
95  /* .count = */ 16,
96  /* .condition = */ {},
97  },
98  {
99  /* .name = */ "device_options",
100  /* .docs = */ "",
101  /* .type = */ {Type::CHAR, nullptr},
102  /* .accessor = */ nullptr, //utils::access<type, char, &type::device_options>,
103  /* .attributes = */ NO_FUNCTIONS,
104  /* .count = */ 16,
105  /* .condition = */ {},
106  },
107  };
108 
109  static constexpr inline StructInfo value = {
110  /* .name = */ "BaseDeviceInfo",
111  /* .title = */ "Base Device Info",
112  /* .docs = */ "",
113  /* .parameters = */ parameters,
114  };
115 };
116 
117 template<>
118 struct MetadataFor<commands_base::GetDeviceInfo::Response>
119 {
121 
122  static constexpr inline ParameterInfo parameters[] = {
123  {
124  /* .name = */ "device_info",
125  /* .docs = */ "",
127  /* .accessor = */ nullptr, //utils::access<type, commands_base::BaseDeviceInfo, &type::device_info>,
128  /* .attributes = */ {true, false, false, false, false},
129  /* .count = */ 1,
130  /* .condition = */ {},
131  },
132  };
133 
134  static constexpr inline FieldInfo value = {
135  /* .name = */ "commands_base::GetDeviceInfo::Response",
136  /* .title = */ "response",
137  /* .docs = */ "",
138  /* .parameters = */ parameters,
139  /* .descriptor = */ type::DESCRIPTOR,
140  /* .functions = */ NO_FUNCTIONS,
141  /* .proprietary = */ false,
142  /* .response = */ nullptr,
143  };
144 };
145 
146 template<>
147 struct MetadataFor<commands_base::GetDeviceInfo>
148 {
150 
151  static constexpr inline FieldInfo value = {
152  /* .name = */ "commands_base::GetDeviceInfo",
153  /* .title = */ "Get device information",
154  /* .docs = */ "Get the device ID strings and firmware version number.",
155  /* .parameters = */ {},
156  /* .descriptor = */ type::DESCRIPTOR,
157  /* .functions = */ NO_FUNCTIONS,
158  /* .proprietary = */ false,
159  /* .response = */ &MetadataFor<type::Response>::value,
160  };
161 };
162 
163 template<>
164 struct MetadataFor<commands_base::GetDeviceDescriptors::Response>
165 {
167 
168  static constexpr inline ParameterInfo parameters[] = {
169  {
170  /* .name = */ "descriptors",
171  /* .docs = */ "",
172  /* .type = */ {Type::U16, nullptr},
173  /* .accessor = */ nullptr, //utils::access<type, uint16_t, &type::descriptors>,
174  /* .attributes = */ {true, false, false, false, false},
175  /* .count = */ {0, microstrain::Index(1) /* descriptors_count */},
176  /* .condition = */ {},
177  },
178  {
179  /* .name = */ "descriptors_count",
180  /* .docs = */ "",
181  /* .type = */ {Type::U8, nullptr},
182  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::descriptors_count>,
183  /* .attributes = */ {false, false, false, false, false, /*echo*/false, /*virtual*/true},
184  /* .count = */ 1,
185  /* .condition = */ {},
186  },
187  };
188 
189  static constexpr inline FieldInfo value = {
190  /* .name = */ "commands_base::GetDeviceDescriptors::Response",
191  /* .title = */ "response",
192  /* .docs = */ "",
193  /* .parameters = */ parameters,
194  /* .descriptor = */ type::DESCRIPTOR,
195  /* .functions = */ NO_FUNCTIONS,
196  /* .proprietary = */ false,
197  /* .response = */ nullptr,
198  };
199 };
200 
201 template<>
202 struct MetadataFor<commands_base::GetDeviceDescriptors>
203 {
205 
206  static constexpr inline FieldInfo value = {
207  /* .name = */ "commands_base::GetDeviceDescriptors",
208  /* .title = */ "Get device descriptors",
209  /* .docs = */ "Get the command and data descriptors supported by the device.\n\nReply has two fields: 'ACK/NACK' and 'Descriptors'. The 'Descriptors' field is an array of 16 bit values.\nThe MSB specifies the descriptor set and the LSB specifies the descriptor.",
210  /* .parameters = */ {},
211  /* .descriptor = */ type::DESCRIPTOR,
212  /* .functions = */ NO_FUNCTIONS,
213  /* .proprietary = */ false,
214  /* .response = */ &MetadataFor<type::Response>::value,
215  };
216 };
217 
218 template<>
219 struct MetadataFor<commands_base::BuiltInTest::Response>
220 {
222 
223  static constexpr inline ParameterInfo parameters[] = {
224  {
225  /* .name = */ "result",
226  /* .docs = */ "",
227  /* .type = */ {Type::U32, nullptr},
228  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::result>,
229  /* .attributes = */ {true, false, false, false, false},
230  /* .count = */ 1,
231  /* .condition = */ {},
232  },
233  };
234 
235  static constexpr inline FieldInfo value = {
236  /* .name = */ "commands_base::BuiltInTest::Response",
237  /* .title = */ "response",
238  /* .docs = */ "",
239  /* .parameters = */ parameters,
240  /* .descriptor = */ type::DESCRIPTOR,
241  /* .functions = */ NO_FUNCTIONS,
242  /* .proprietary = */ false,
243  /* .response = */ nullptr,
244  };
245 };
246 
247 template<>
248 struct MetadataFor<commands_base::BuiltInTest>
249 {
251 
252  static constexpr inline FieldInfo value = {
253  /* .name = */ "commands_base::BuiltInTest",
254  /* .title = */ "Built in test",
255  /* .docs = */ "Run the device Built-In Test (BIT).\n\nThe Built-In Test command always returns a 32 bit value.\nA value of 0 means that all tests passed.\nA non-zero value indicates that not all tests passed.\nReference the device user manual to decode the result.",
256  /* .parameters = */ {},
257  /* .descriptor = */ type::DESCRIPTOR,
258  /* .functions = */ NO_FUNCTIONS,
259  /* .proprietary = */ false,
260  /* .response = */ &MetadataFor<type::Response>::value,
261  };
262 };
263 
264 template<>
265 struct MetadataFor<commands_base::Resume>
266 {
268 
269  static constexpr inline FieldInfo value = {
270  /* .name = */ "commands_base::Resume",
271  /* .title = */ "Resume",
272  /* .docs = */ "Take the device out of idle mode.\n\nThe device responds with ACK upon success.",
273  /* .parameters = */ {},
274  /* .descriptor = */ type::DESCRIPTOR,
275  /* .functions = */ NO_FUNCTIONS,
276  /* .proprietary = */ false,
277  /* .response = */ nullptr,
278  };
279 };
280 
281 template<>
282 struct MetadataFor<commands_base::GetExtendedDescriptors::Response>
283 {
285 
286  static constexpr inline ParameterInfo parameters[] = {
287  {
288  /* .name = */ "descriptors",
289  /* .docs = */ "",
290  /* .type = */ {Type::U16, nullptr},
291  /* .accessor = */ nullptr, //utils::access<type, uint16_t, &type::descriptors>,
292  /* .attributes = */ {true, false, false, false, false},
293  /* .count = */ {0, microstrain::Index(1) /* descriptors_count */},
294  /* .condition = */ {},
295  },
296  {
297  /* .name = */ "descriptors_count",
298  /* .docs = */ "",
299  /* .type = */ {Type::U8, nullptr},
300  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::descriptors_count>,
301  /* .attributes = */ {false, false, false, false, false, /*echo*/false, /*virtual*/true},
302  /* .count = */ 1,
303  /* .condition = */ {},
304  },
305  };
306 
307  static constexpr inline FieldInfo value = {
308  /* .name = */ "commands_base::GetExtendedDescriptors::Response",
309  /* .title = */ "response",
310  /* .docs = */ "",
311  /* .parameters = */ parameters,
312  /* .descriptor = */ type::DESCRIPTOR,
313  /* .functions = */ NO_FUNCTIONS,
314  /* .proprietary = */ false,
315  /* .response = */ nullptr,
316  };
317 };
318 
319 template<>
320 struct MetadataFor<commands_base::GetExtendedDescriptors>
321 {
323 
324  static constexpr inline FieldInfo value = {
325  /* .name = */ "commands_base::GetExtendedDescriptors",
326  /* .title = */ "Get device descriptors (extended)",
327  /* .docs = */ "Get the command and data descriptors supported by the device.\n\nReply has two fields: 'ACK/NACK' and 'Descriptors'. The 'Descriptors' field is an array of 16 bit values.\nThe MSB specifies the descriptor set and the LSB specifies the descriptor.",
328  /* .parameters = */ {},
329  /* .descriptor = */ type::DESCRIPTOR,
330  /* .functions = */ NO_FUNCTIONS,
331  /* .proprietary = */ false,
332  /* .response = */ &MetadataFor<type::Response>::value,
333  };
334 };
335 
336 template<>
337 struct MetadataFor<commands_base::ContinuousBit::Response>
338 {
340 
341  static constexpr inline ParameterInfo parameters[] = {
342  {
343  /* .name = */ "result",
344  /* .docs = */ "Device-specific bitfield (128 bits). See device user manual.\nBits are least-significant-byte first. For example, bit 0 is\nlocated at bit 0 of result[0], bit 1 is located at bit 1 of result[0],\nbit 8 is located at bit 0 of result[1], and bit 127 is located at bit\n7 of result[15].",
345  /* .type = */ {Type::U8, nullptr},
346  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::result>,
347  /* .attributes = */ {true, false, false, false, false},
348  /* .count = */ 16,
349  /* .condition = */ {},
350  },
351  };
352 
353  static constexpr inline FieldInfo value = {
354  /* .name = */ "commands_base::ContinuousBit::Response",
355  /* .title = */ "response",
356  /* .docs = */ "",
357  /* .parameters = */ parameters,
358  /* .descriptor = */ type::DESCRIPTOR,
359  /* .functions = */ NO_FUNCTIONS,
360  /* .proprietary = */ false,
361  /* .response = */ nullptr,
362  };
363 };
364 
365 template<>
366 struct MetadataFor<commands_base::ContinuousBit>
367 {
369 
370  static constexpr inline FieldInfo value = {
371  /* .name = */ "commands_base::ContinuousBit",
372  /* .title = */ "Continuous built-in test",
373  /* .docs = */ "Report result of continuous built-in test.\n\nThis test is non-disruptive but is not as thorough as the commanded BIT.",
374  /* .parameters = */ {},
375  /* .descriptor = */ type::DESCRIPTOR,
376  /* .functions = */ NO_FUNCTIONS,
377  /* .proprietary = */ false,
378  /* .response = */ &MetadataFor<type::Response>::value,
379  };
380 };
381 
382 template<>
383 struct MetadataFor<commands_base::CommSpeed::Response>
384 {
386 
387  static constexpr inline ParameterInfo parameters[] = {
388  {
389  /* .name = */ "port",
390  /* .docs = */ "Port ID number, starting with 1. When function is SAVE, LOAD, or DEFAULT, this can be 0 to apply to all ports. See the device user manual for details.",
391  /* .type = */ {Type::U8, nullptr},
392  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::port>,
393  /* .attributes = */ {true, true, true, true, true, /*echo*/true},
394  /* .count = */ 1,
395  /* .condition = */ {},
396  },
397  {
398  /* .name = */ "baud",
399  /* .docs = */ "Port baud rate. Must be a supported rate.",
400  /* .type = */ {Type::U32, nullptr},
401  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::baud>,
402  /* .attributes = */ {true, false, false, false, false},
403  /* .count = */ 1,
404  /* .condition = */ {},
405  },
406  };
407 
408  static constexpr inline FieldInfo value = {
409  /* .name = */ "commands_base::CommSpeed::Response",
410  /* .title = */ "response",
411  /* .docs = */ "",
412  /* .parameters = */ parameters,
413  /* .descriptor = */ type::DESCRIPTOR,
414  /* .functions = */ NO_FUNCTIONS,
415  /* .proprietary = */ false,
416  /* .response = */ nullptr,
417  };
418 };
419 
420 template<>
421 struct MetadataFor<commands_base::CommSpeed>
422 {
424 
425  static constexpr inline ParameterInfo parameters[] = {
426  FUNCTION_SELECTOR_PARAM,
427  {
428  /* .name = */ "port",
429  /* .docs = */ "Port ID number, starting with 1. When function is SAVE, LOAD, or DEFAULT, this can be 0 to apply to all ports. See the device user manual for details.",
430  /* .type = */ {Type::U8, nullptr},
431  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::port>,
432  /* .attributes = */ {true, true, true, true, true, /*echo*/true},
433  /* .count = */ 1,
434  /* .condition = */ {},
435  },
436  {
437  /* .name = */ "baud",
438  /* .docs = */ "Port baud rate. Must be a supported rate.",
439  /* .type = */ {Type::U32, nullptr},
440  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::baud>,
441  /* .attributes = */ {true, false, false, false, false},
442  /* .count = */ 1,
443  /* .condition = */ {},
444  },
445  };
446 
447  static constexpr inline FieldInfo value = {
448  /* .name = */ "commands_base::CommSpeed",
449  /* .title = */ "Comm Port Speed",
450  /* .docs = */ "Controls the baud rate of a specific port on the device.\n\nPlease see the device user manual for supported baud rates on each port.\n\nThe device will wait until all incoming and outgoing data has been sent, up\nto a maximum of 250 ms, before applying any change.\n\nNo guarantee is provided as to what happens to commands issued during this\ndelay period; They may or may not be processed and any responses aren't\nguaranteed to be at one rate or the other. The same applies to data packets.\n\nIt is highly recommended that the device be idle before issuing this command\nand that it be issued in its own packet. Users should wait 250 ms after\nsending this command before further interaction.",
451  /* .parameters = */ parameters,
452  /* .descriptor = */ type::DESCRIPTOR,
453  /* .functions = */ {true, true, true, true, true},
454  /* .proprietary = */ false,
455  /* .response = */ &MetadataFor<type::Response>::value,
456  };
457 };
458 
459 template<>
460 struct MetadataFor<commands_base::GpsTimeUpdate::FieldId>
461 {
463 
464  static constexpr inline EnumInfo::Entry entries[] = {
465  { uint32_t(1), "WEEK_NUMBER", "Week number." },
466  { uint32_t(2), "TIME_OF_WEEK", "Time of week in seconds." },
467  };
468 
469  static constexpr inline EnumInfo value = {
470  /* .name = */ "field_id",
471  /* .docs = */ "",
472  /* .type = */ Type::U8,
473  /* .entries = */ entries,
474  };
475 
476 };
477 
478 template<>
479 struct MetadataFor<commands_base::GpsTimeUpdate>
480 {
482 
483  static constexpr inline ParameterInfo parameters[] = {
484  FUNCTION_SELECTOR_PARAM,
485  {
486  /* .name = */ "field_id",
487  /* .docs = */ "Determines how to interpret value.",
489  /* .accessor = */ nullptr, //utils::access<type, commands_base::GpsTimeUpdate::FieldId, &type::field_id>,
490  /* .attributes = */ {true, false, false, false, false},
491  /* .count = */ 1,
492  /* .condition = */ {},
493  },
494  {
495  /* .name = */ "value",
496  /* .docs = */ "Week number or time of week, depending on the field_id.",
497  /* .type = */ {Type::U32, nullptr},
498  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::value>,
499  /* .attributes = */ {true, false, false, false, false},
500  /* .count = */ 1,
501  /* .condition = */ {},
502  },
503  };
504 
505  static constexpr inline FieldInfo value = {
506  /* .name = */ "commands_base::GpsTimeUpdate",
507  /* .title = */ "GPS Time Update Command",
508  /* .docs = */ "Set device internal GPS time\nWhen combined with a PPS input signal applied to the I/O connector, this command enables complete synchronization of data outputs\nwith an external time base, such as GPS system time. Since the hardware PPS synchronization can only detect the fractional number of seconds when pulses arrive,\ncomplete synchronization requires that the user provide the whole number of seconds via this command. After achieving PPS synchronization, this command should be sent twice: once to set the time-of-week and once to set the week number. PPS synchronization can be verified by monitoring the time sync status message (0xA0, 0x02) or the valid flags of any shared external timestamp (0x--, D7) data field.",
509  /* .parameters = */ parameters,
510  /* .descriptor = */ type::DESCRIPTOR,
511  /* .functions = */ {true, false, false, false, false},
512  /* .proprietary = */ false,
513  /* .response = */ nullptr,
514  };
515 };
516 
517 template<>
518 struct MetadataFor<commands_base::SoftReset>
519 {
521 
522  static constexpr inline FieldInfo value = {
523  /* .name = */ "commands_base::SoftReset",
524  /* .title = */ "Reset device",
525  /* .docs = */ "Resets the device.\n\nDevice responds with ACK and immediately resets.",
526  /* .parameters = */ {},
527  /* .descriptor = */ type::DESCRIPTOR,
528  /* .functions = */ NO_FUNCTIONS,
529  /* .proprietary = */ false,
530  /* .response = */ nullptr,
531  };
532 };
533 
534 
535 static constexpr inline std::initializer_list<const FieldInfo*> COMMANDS_BASE = {
553 };
554 
555 
556 } // namespace mip::metadata
557 
mip::commands_base::Resume
Definition: commands_base.hpp:472
mip::commands_base::SetIdle
Definition: commands_base.hpp:236
mip::metadata::Type::ENUM
@ ENUM
mip::commands_base::Ping
Definition: commands_base.hpp:196
mip::metadata::MetadataFor< commands_base::GetDeviceInfo::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:134
mip::metadata::MetadataFor< commands_base::GetExtendedDescriptors::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:307
mip::metadata
Definition: commands_3dm.hpp:9
mip::commands_base::GpsTimeUpdate::FieldId
FieldId
Definition: commands_base.hpp:740
mip::commands_base::GetExtendedDescriptors
Definition: commands_base.hpp:511
mip::commands_base::CommSpeed::Response
Definition: commands_base.hpp:691
mip::metadata::MetadataFor< commands_base::Resume >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:269
mip::metadata::MetadataFor< commands_base::Ping >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:18
mip::commands_base::GetExtendedDescriptors::Response
Definition: commands_base.hpp:535
mip::metadata::MetadataFor< commands_base::GetDeviceDescriptors >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:206
mip::commands_base::SoftReset
Definition: commands_base.hpp:794
mip::commands_base::GpsTimeUpdate
Definition: commands_base.hpp:738
mip::metadata::Type::U16
@ U16
mip::metadata::MetadataFor
Definition: mip_metadata.hpp:15
mip::metadata::Type::STRUCT
@ STRUCT
mip::metadata::Type::CHAR
@ CHAR
mip::metadata::ParameterInfo
Definition: mip_structures.hpp:127
mip::metadata::MetadataFor< commands_base::GetExtendedDescriptors >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:324
mip::metadata::MetadataFor< commands_base::SetIdle >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:35
mip::metadata::EnumInfo::Entry
Definition: mip_structures.hpp:67
mip::commands_base::GetDeviceInfo
Definition: commands_base.hpp:272
mip_metadata.hpp
mip::metadata::MetadataFor< commands_base::CommSpeed::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:408
mip::commands_base::ContinuousBit::Response
Definition: commands_base.hpp:601
mip::commands_base::BaseDeviceInfo
Definition: commands_base.hpp:59
mip::metadata::MetadataFor< commands_base::GetDeviceDescriptors::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:189
mip::metadata::MetadataFor< commands_base::ContinuousBit >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:370
mip::commands_base::BuiltInTest
Definition: commands_base.hpp:407
mip::commands_base::ContinuousBit
Definition: commands_base.hpp:577
mip::metadata::MetadataFor< commands_base::SoftReset >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:522
microstrain::Index
Represents an index ranging from 0..N excluding N.
Definition: index.hpp:28
mip::metadata::FieldInfo
Definition: mip_structures.hpp:182
mip::metadata::Type::U8
@ U8
mip::metadata::MetadataFor< commands_base::GpsTimeUpdate >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:505
mip::metadata::MetadataFor< commands_base::CommSpeed >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:447
commands_base.hpp
mip::metadata::MetadataFor< commands_base::ContinuousBit::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:353
mip::metadata::EnumInfo
Definition: mip_structures.hpp:65
mip::metadata::MetadataFor< commands_base::BuiltInTest::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:235
mip::commands_base::GetDeviceDescriptors
Definition: commands_base.hpp:338
mip::commands_base::BuiltInTest::Response
Definition: commands_base.hpp:431
mip::commands_base::GetDeviceDescriptors::Response
Definition: commands_base.hpp:362
mip::metadata::StructInfo
Definition: mip_structures.hpp:171
mip::commands_base::GetDeviceInfo::Response
Definition: commands_base.hpp:296
mip::metadata::MetadataFor< commands_base::GetDeviceInfo >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:151
common.hpp
mip::metadata::MetadataFor< commands_base::BuiltInTest >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:252
mip::metadata::Type::U32
@ U32
mip::commands_base::CommSpeed
Definition: commands_base.hpp:653