MIP_SDK  v3.0.0-343-g605b467
MicroStrain Communications Library for embedded systems
commands_base.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 
7 
8 namespace mip::metadata
9 {
10 
11 
12 template<>
13 struct MetadataFor<commands_base::Ping>
14 {
16 
17  static constexpr inline FieldInfo value = {
18  {
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  },
24  /* .descriptor = */ type::DESCRIPTOR,
25  /* .functions = */ NO_FUNCTIONS,
26  /* .response = */ nullptr,
27  };
28 };
29 
30 template<>
31 struct MetadataFor<commands_base::SetIdle>
32 {
34 
35  static constexpr inline FieldInfo value = {
36  {
37  /* .name = */ "commands_base::SetIdle",
38  /* .title = */ "Set to idle",
39  /* .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.",
40  /* .parameters = */ {},
41  },
42  /* .descriptor = */ type::DESCRIPTOR,
43  /* .functions = */ NO_FUNCTIONS,
44  /* .response = */ nullptr,
45  };
46 };
47 
48 template<>
49 struct MetadataFor<commands_base::BaseDeviceInfo>
50 {
52 
53  static constexpr inline ParameterInfo parameters[] = {
54  {
55  /* .name = */ "firmware_version",
56  /* .docs = */ "",
57  /* .type = */ {Type::U16, nullptr},
58  /* .accessor = */ nullptr, //utils::access<type, uint16_t, &type::firmware_version>,
59  /* .attributes = */ NO_FUNCTIONS,
60  /* .count = */ 1,
61  /* .condition = */ {},
62  },
63  {
64  /* .name = */ "model_name",
65  /* .docs = */ "",
66  /* .type = */ {Type::CHAR, nullptr},
67  /* .accessor = */ nullptr, //utils::access<type, char, &type::model_name>,
68  /* .attributes = */ NO_FUNCTIONS,
69  /* .count = */ 16,
70  /* .condition = */ {},
71  },
72  {
73  /* .name = */ "model_number",
74  /* .docs = */ "",
75  /* .type = */ {Type::CHAR, nullptr},
76  /* .accessor = */ nullptr, //utils::access<type, char, &type::model_number>,
77  /* .attributes = */ NO_FUNCTIONS,
78  /* .count = */ 16,
79  /* .condition = */ {},
80  },
81  {
82  /* .name = */ "serial_number",
83  /* .docs = */ "",
84  /* .type = */ {Type::CHAR, nullptr},
85  /* .accessor = */ nullptr, //utils::access<type, char, &type::serial_number>,
86  /* .attributes = */ NO_FUNCTIONS,
87  /* .count = */ 16,
88  /* .condition = */ {},
89  },
90  {
91  /* .name = */ "lot_number",
92  /* .docs = */ "",
93  /* .type = */ {Type::CHAR, nullptr},
94  /* .accessor = */ nullptr, //utils::access<type, char, &type::lot_number>,
95  /* .attributes = */ NO_FUNCTIONS,
96  /* .count = */ 16,
97  /* .condition = */ {},
98  },
99  {
100  /* .name = */ "device_options",
101  /* .docs = */ "",
102  /* .type = */ {Type::CHAR, nullptr},
103  /* .accessor = */ nullptr, //utils::access<type, char, &type::device_options>,
104  /* .attributes = */ NO_FUNCTIONS,
105  /* .count = */ 16,
106  /* .condition = */ {},
107  },
108  };
109 
110  static constexpr inline StructInfo value = {
111  /* .name = */ "BaseDeviceInfo",
112  /* .title = */ "Base Device Info",
113  /* .docs = */ "",
114  /* .parameters = */ parameters,
115  };
116 };
117 
118 template<>
119 struct MetadataFor<commands_base::GetDeviceInfo::Response>
120 {
122 
123  static constexpr inline ParameterInfo parameters[] = {
124  {
125  /* .name = */ "device_info",
126  /* .docs = */ "",
128  /* .accessor = */ nullptr, //utils::access<type, commands_base::BaseDeviceInfo, &type::device_info>,
129  /* .attributes = */ {true, false, false, false, false},
130  /* .count = */ 1,
131  /* .condition = */ {},
132  },
133  };
134 
135  static constexpr inline FieldInfo value = {
136  {
137  /* .name = */ "commands_base::GetDeviceInfo::Response",
138  /* .title = */ "response",
139  /* .docs = */ "",
140  /* .parameters = */ parameters,
141  },
142  /* .descriptor = */ type::DESCRIPTOR,
143  /* .functions = */ NO_FUNCTIONS,
144  /* .response = */ nullptr,
145  };
146 };
147 
148 template<>
149 struct MetadataFor<commands_base::GetDeviceInfo>
150 {
152 
153  static constexpr inline FieldInfo value = {
154  {
155  /* .name = */ "commands_base::GetDeviceInfo",
156  /* .title = */ "Get device information",
157  /* .docs = */ "Get the device ID strings and firmware version number.",
158  /* .parameters = */ {},
159  },
160  /* .descriptor = */ type::DESCRIPTOR,
161  /* .functions = */ NO_FUNCTIONS,
162  /* .response = */ &MetadataFor<type::Response>::value,
163  };
164 };
165 
166 template<>
167 struct MetadataFor<commands_base::GetDeviceDescriptors::Response>
168 {
170 
171  static constexpr inline ParameterInfo parameters[] = {
172  {
173  /* .name = */ "descriptors",
174  /* .docs = */ "",
175  /* .type = */ {Type::U16, nullptr},
176  /* .accessor = */ nullptr, //utils::access<type, uint16_t, &type::descriptors>,
177  /* .attributes = */ {true, false, false, false, false},
178  /* .count = */ {0, microstrain::Index(1) /* descriptors_count */},
179  /* .condition = */ {},
180  },
181  {
182  /* .name = */ "descriptors_count",
183  /* .docs = */ "",
184  /* .type = */ {Type::U8, nullptr},
185  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::descriptors_count>,
186  /* .attributes = */ {false, false, false, false, false, /*echo*/false, /*virtual*/true},
187  /* .count = */ 1,
188  /* .condition = */ {},
189  },
190  };
191 
192  static constexpr inline FieldInfo value = {
193  {
194  /* .name = */ "commands_base::GetDeviceDescriptors::Response",
195  /* .title = */ "response",
196  /* .docs = */ "",
197  /* .parameters = */ parameters,
198  },
199  /* .descriptor = */ type::DESCRIPTOR,
200  /* .functions = */ NO_FUNCTIONS,
201  /* .response = */ nullptr,
202  };
203 };
204 
205 template<>
206 struct MetadataFor<commands_base::GetDeviceDescriptors>
207 {
209 
210  static constexpr inline FieldInfo value = {
211  {
212  /* .name = */ "commands_base::GetDeviceDescriptors",
213  /* .title = */ "Get device descriptors",
214  /* .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.",
215  /* .parameters = */ {},
216  },
217  /* .descriptor = */ type::DESCRIPTOR,
218  /* .functions = */ NO_FUNCTIONS,
219  /* .response = */ &MetadataFor<type::Response>::value,
220  };
221 };
222 
223 template<>
224 struct MetadataFor<commands_base::BuiltInTest::Response>
225 {
227 
228  static constexpr inline ParameterInfo parameters[] = {
229  {
230  /* .name = */ "result",
231  /* .docs = */ "",
232  /* .type = */ {Type::U32, nullptr},
233  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::result>,
234  /* .attributes = */ {true, false, false, false, false},
235  /* .count = */ 1,
236  /* .condition = */ {},
237  },
238  };
239 
240  static constexpr inline FieldInfo value = {
241  {
242  /* .name = */ "commands_base::BuiltInTest::Response",
243  /* .title = */ "response",
244  /* .docs = */ "",
245  /* .parameters = */ parameters,
246  },
247  /* .descriptor = */ type::DESCRIPTOR,
248  /* .functions = */ NO_FUNCTIONS,
249  /* .response = */ nullptr,
250  };
251 };
252 
253 template<>
254 struct MetadataFor<commands_base::BuiltInTest>
255 {
257 
258  static constexpr inline FieldInfo value = {
259  {
260  /* .name = */ "commands_base::BuiltInTest",
261  /* .title = */ "Built in test",
262  /* .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.",
263  /* .parameters = */ {},
264  },
265  /* .descriptor = */ type::DESCRIPTOR,
266  /* .functions = */ NO_FUNCTIONS,
267  /* .response = */ &MetadataFor<type::Response>::value,
268  };
269 };
270 
271 template<>
272 struct MetadataFor<commands_base::Resume>
273 {
275 
276  static constexpr inline FieldInfo value = {
277  {
278  /* .name = */ "commands_base::Resume",
279  /* .title = */ "Resume",
280  /* .docs = */ "Take the device out of idle mode.\n\nThe device responds with ACK upon success.",
281  /* .parameters = */ {},
282  },
283  /* .descriptor = */ type::DESCRIPTOR,
284  /* .functions = */ NO_FUNCTIONS,
285  /* .response = */ nullptr,
286  };
287 };
288 
289 template<>
290 struct MetadataFor<commands_base::GetExtendedDescriptors::Response>
291 {
293 
294  static constexpr inline ParameterInfo parameters[] = {
295  {
296  /* .name = */ "descriptors",
297  /* .docs = */ "",
298  /* .type = */ {Type::U16, nullptr},
299  /* .accessor = */ nullptr, //utils::access<type, uint16_t, &type::descriptors>,
300  /* .attributes = */ {true, false, false, false, false},
301  /* .count = */ {0, microstrain::Index(1) /* descriptors_count */},
302  /* .condition = */ {},
303  },
304  {
305  /* .name = */ "descriptors_count",
306  /* .docs = */ "",
307  /* .type = */ {Type::U8, nullptr},
308  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::descriptors_count>,
309  /* .attributes = */ {false, false, false, false, false, /*echo*/false, /*virtual*/true},
310  /* .count = */ 1,
311  /* .condition = */ {},
312  },
313  };
314 
315  static constexpr inline FieldInfo value = {
316  {
317  /* .name = */ "commands_base::GetExtendedDescriptors::Response",
318  /* .title = */ "response",
319  /* .docs = */ "",
320  /* .parameters = */ parameters,
321  },
322  /* .descriptor = */ type::DESCRIPTOR,
323  /* .functions = */ NO_FUNCTIONS,
324  /* .response = */ nullptr,
325  };
326 };
327 
328 template<>
329 struct MetadataFor<commands_base::GetExtendedDescriptors>
330 {
332 
333  static constexpr inline FieldInfo value = {
334  {
335  /* .name = */ "commands_base::GetExtendedDescriptors",
336  /* .title = */ "Get device descriptors (extended)",
337  /* .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.",
338  /* .parameters = */ {},
339  },
340  /* .descriptor = */ type::DESCRIPTOR,
341  /* .functions = */ NO_FUNCTIONS,
342  /* .response = */ &MetadataFor<type::Response>::value,
343  };
344 };
345 
346 template<>
347 struct MetadataFor<commands_base::ContinuousBit::Response>
348 {
350 
351  static constexpr inline ParameterInfo parameters[] = {
352  {
353  /* .name = */ "result",
354  /* .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].",
355  /* .type = */ {Type::U8, nullptr},
356  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::result>,
357  /* .attributes = */ {true, false, false, false, false},
358  /* .count = */ 16,
359  /* .condition = */ {},
360  },
361  };
362 
363  static constexpr inline FieldInfo value = {
364  {
365  /* .name = */ "commands_base::ContinuousBit::Response",
366  /* .title = */ "response",
367  /* .docs = */ "",
368  /* .parameters = */ parameters,
369  },
370  /* .descriptor = */ type::DESCRIPTOR,
371  /* .functions = */ NO_FUNCTIONS,
372  /* .response = */ nullptr,
373  };
374 };
375 
376 template<>
377 struct MetadataFor<commands_base::ContinuousBit>
378 {
380 
381  static constexpr inline FieldInfo value = {
382  {
383  /* .name = */ "commands_base::ContinuousBit",
384  /* .title = */ "Continuous built-in test",
385  /* .docs = */ "Report result of continuous built-in test.\n\nThis test is non-disruptive but is not as thorough as the commanded BIT.",
386  /* .parameters = */ {},
387  },
388  /* .descriptor = */ type::DESCRIPTOR,
389  /* .functions = */ NO_FUNCTIONS,
390  /* .response = */ &MetadataFor<type::Response>::value,
391  };
392 };
393 
394 template<>
395 struct MetadataFor<commands_base::CommSpeed::Response>
396 {
398 
399  static constexpr inline ParameterInfo parameters[] = {
400  {
401  /* .name = */ "port",
402  /* .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.",
403  /* .type = */ {Type::U8, nullptr},
404  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::port>,
405  /* .attributes = */ {true, true, true, true, true, /*echo*/true},
406  /* .count = */ 1,
407  /* .condition = */ {},
408  },
409  {
410  /* .name = */ "baud",
411  /* .docs = */ "Port baud rate. Must be a supported rate.",
412  /* .type = */ {Type::U32, nullptr},
413  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::baud>,
414  /* .attributes = */ {true, false, false, false, false},
415  /* .count = */ 1,
416  /* .condition = */ {},
417  },
418  };
419 
420  static constexpr inline FieldInfo value = {
421  {
422  /* .name = */ "commands_base::CommSpeed::Response",
423  /* .title = */ "response",
424  /* .docs = */ "",
425  /* .parameters = */ parameters,
426  },
427  /* .descriptor = */ type::DESCRIPTOR,
428  /* .functions = */ NO_FUNCTIONS,
429  /* .response = */ nullptr,
430  };
431 };
432 
433 template<>
434 struct MetadataFor<commands_base::CommSpeed>
435 {
437 
438  static constexpr inline ParameterInfo parameters[] = {
439  FUNCTION_SELECTOR_PARAM,
440  {
441  /* .name = */ "port",
442  /* .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.",
443  /* .type = */ {Type::U8, nullptr},
444  /* .accessor = */ nullptr, //utils::access<type, uint8_t, &type::port>,
445  /* .attributes = */ {true, true, true, true, true, /*echo*/true},
446  /* .count = */ 1,
447  /* .condition = */ {},
448  },
449  {
450  /* .name = */ "baud",
451  /* .docs = */ "Port baud rate. Must be a supported rate.",
452  /* .type = */ {Type::U32, nullptr},
453  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::baud>,
454  /* .attributes = */ {true, false, false, false, false},
455  /* .count = */ 1,
456  /* .condition = */ {},
457  },
458  };
459 
460  static constexpr inline FieldInfo value = {
461  {
462  /* .name = */ "commands_base::CommSpeed",
463  /* .title = */ "Comm Port Speed",
464  /* .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.",
465  /* .parameters = */ parameters,
466  },
467  /* .descriptor = */ type::DESCRIPTOR,
468  /* .functions = */ {true, true, true, true, true},
469  /* .response = */ &MetadataFor<type::Response>::value,
470  };
471 };
472 
473 template<>
474 struct MetadataFor<commands_base::GpsTimeUpdate::FieldId>
475 {
477 
478  static constexpr inline EnumInfo::Entry entries[] = {
479  { uint32_t(1), "WEEK_NUMBER", "Week number." },
480  { uint32_t(2), "TIME_OF_WEEK", "Time of week in seconds." },
481  };
482 
483  static constexpr inline EnumInfo value = {
484  /* .name = */ "field_id",
485  /* .docs = */ "",
486  /* .type = */ Type::U8,
487  /* .entries = */ entries,
488  };
489 
490 };
491 
492 template<>
493 struct MetadataFor<commands_base::GpsTimeUpdate>
494 {
496 
497  static constexpr inline ParameterInfo parameters[] = {
498  FUNCTION_SELECTOR_PARAM,
499  {
500  /* .name = */ "field_id",
501  /* .docs = */ "Determines how to interpret value.",
503  /* .accessor = */ nullptr, //utils::access<type, commands_base::GpsTimeUpdate::FieldId, &type::field_id>,
504  /* .attributes = */ {true, false, false, false, false},
505  /* .count = */ 1,
506  /* .condition = */ {},
507  },
508  {
509  /* .name = */ "value",
510  /* .docs = */ "Week number or time of week, depending on the field_id.",
511  /* .type = */ {Type::U32, nullptr},
512  /* .accessor = */ nullptr, //utils::access<type, uint32_t, &type::value>,
513  /* .attributes = */ {true, false, false, false, false},
514  /* .count = */ 1,
515  /* .condition = */ {},
516  },
517  };
518 
519  static constexpr inline FieldInfo value = {
520  {
521  /* .name = */ "commands_base::GpsTimeUpdate",
522  /* .title = */ "GPS Time Update Command",
523  /* .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.",
524  /* .parameters = */ parameters,
525  },
526  /* .descriptor = */ type::DESCRIPTOR,
527  /* .functions = */ {true, false, false, false, false},
528  /* .response = */ nullptr,
529  };
530 };
531 
532 template<>
533 struct MetadataFor<commands_base::SoftReset>
534 {
536 
537  static constexpr inline FieldInfo value = {
538  {
539  /* .name = */ "commands_base::SoftReset",
540  /* .title = */ "Reset device",
541  /* .docs = */ "Resets the device.\n\nDevice responds with ACK and immediately resets.",
542  /* .parameters = */ {},
543  },
544  /* .descriptor = */ type::DESCRIPTOR,
545  /* .functions = */ NO_FUNCTIONS,
546  /* .response = */ nullptr,
547  };
548 };
549 
550 
551 static constexpr inline const FieldInfo* COMMANDS_BASE_FIELDS[] = {
569 };
570 
571 static constexpr DescriptorSetInfo COMMANDS_BASE = {
572  /* .descriptor = */ mip::commands_base::DESCRIPTOR_SET,
573  /* .name = */ "Base Commands",
574  /* .fields = */ COMMANDS_BASE_FIELDS,
575 };
576 
577 } // namespace mip::metadata
578 
mip::commands_base::Resume
Definition: commands_base.hpp:472
mip::commands_base::SetIdle
Definition: commands_base.hpp:236
common.hpp
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:135
mip::metadata::MetadataFor< commands_base::GetExtendedDescriptors::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:315
mip::metadata
Definition: common.hpp:8
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:276
mip::metadata::MetadataFor< commands_base::Ping >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:17
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:210
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:13
mip::metadata::Type::STRUCT
@ STRUCT
mip::metadata::Type::CHAR
@ CHAR
mip::metadata::ParameterInfo
Definition: mip_structures.hpp:158
mip::metadata::MetadataFor< commands_base::GetExtendedDescriptors >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:333
mip::metadata::MetadataFor< commands_base::SetIdle >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:35
mip::metadata::EnumInfo::Entry
Definition: mip_structures.hpp:65
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:420
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:192
mip::metadata::MetadataFor< commands_base::ContinuousBit >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:381
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:537
microstrain::Index
Represents an index ranging from 0..N excluding N.
Definition: index.hpp:28
mip::metadata::FieldInfo
Definition: mip_structures.hpp:212
mip::metadata::Type::U8
@ U8
mip::metadata::MetadataFor< commands_base::GpsTimeUpdate >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:519
mip::metadata::MetadataFor< commands_base::CommSpeed >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:460
commands_base.hpp
mip::metadata::MetadataFor< commands_base::ContinuousBit::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:363
mip::metadata::EnumInfo
Definition: mip_structures.hpp:63
mip::metadata::MetadataFor< commands_base::BuiltInTest::Response >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:240
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::commands_base::DESCRIPTOR_SET
@ DESCRIPTOR_SET
Definition: commands_base.hpp:31
mip::metadata::StructInfo
Definition: mip_structures.hpp:201
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:153
mip::metadata::MetadataFor< commands_base::BuiltInTest >::value
static constexpr FieldInfo value
Definition: commands_base.hpp:258
mip::metadata::Type::U32
@ U32
mip::commands_base::CommSpeed
Definition: commands_base.hpp:653