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