MIP_SDK
latest-2-g34f3e39
MicroStrain Communications Library for embedded systems
|
Go to the documentation of this file.
22 "Suppress the usual ACK/NACK reply.",
25 {
true,
false,
false,
false,
false},
31 "Number of descriptors in the descriptor list.",
34 {
true,
false,
false,
false,
false},
43 {
true,
false,
false,
false,
false},
50 "commands_3dm::PollImuMessage",
52 "Poll the device for an IMU message with the specified format\n\nThis function polls for an IMU message using the provided format. The resulting message\nwill maintain the order of descriptors sent in the command and any unrecognized\ndescriptors are ignored. If the format is not provided, the device will attempt to use the\nstored format (set with the Set IMU Message Format command.) If no format is provided\nand there is no stored format, the device will respond with a NACK. The reply packet contains\nan ACK/NACK field. The polled data packet is sent separately as an IMU Data packet.",
68 "Suppress the usual ACK/NACK reply.",
71 {
true,
false,
false,
false,
false},
77 "Number of descriptors in the descriptor list.",
80 {
true,
false,
false,
false,
false},
89 {
true,
false,
false,
false,
false},
96 "commands_3dm::PollGnssMessage",
98 "Poll the device for an GNSS message with the specified format\n\nThis function polls for a GNSS message using the provided format. The resulting message\nwill maintain the order of descriptors sent in the command and any unrecognized\ndescriptors are ignored. If the format is not provided, the device will attempt to use the\nstored format (set with the Set GNSS Message Format command.) If no format is provided\nand there is no stored format, the device will respond with a NACK. The reply packet contains\nan ACK/NACK field. The polled data packet is sent separately as a GNSS Data packet.",
114 "Suppress the usual ACK/NACK reply.",
117 {
true,
false,
false,
false,
false},
123 "Number of descriptors in the format list.",
126 {
true,
false,
false,
false,
false},
132 "Descriptor format list.",
135 {
true,
false,
false,
false,
false},
142 "commands_3dm::PollFilterMessage",
143 "poll_filter_message",
144 "Poll the device for an Estimation Filter message with the specified format\n\nThis function polls for an Estimation Filter message using the provided format. The resulting message\nwill maintain the order of descriptors sent in the command and any unrecognized\ndescriptors are ignored. If the format is not provided, the device will attempt to use the\nstored format (set with the Set Estimation Filter Message Format command.) If no format is provided\nand there is no stored format, the device will respond with a NACK. The reply packet contains\nan ACK/NACK field. The polled data packet is sent separately as an Estimation Filter Data packet.",
160 "Number of descriptors",
163 {
true,
false,
false,
false,
false},
169 "Descriptor format list.",
172 {
true,
false,
false,
false,
false},
179 "commands_3dm::ImuMessageFormat::Response",
195 FUNCTION_SELECTOR_PARAM,
198 "Number of descriptors",
201 {
true,
false,
false,
false,
false},
207 "Descriptor format list.",
210 {
true,
false,
false,
false,
false},
217 "commands_3dm::ImuMessageFormat",
218 "imu_message_format",
219 "Set, read, or save the format of the IMU data packet.\n\nThe resulting data messages will maintain the order of descriptors sent in the command.",
222 {
true,
true,
true,
true,
true},
235 "Number of descriptors",
238 {
true,
false,
false,
false,
false},
244 "Descriptor format list.",
247 {
true,
false,
false,
false,
false},
254 "commands_3dm::GpsMessageFormat::Response",
270 FUNCTION_SELECTOR_PARAM,
273 "Number of descriptors",
276 {
true,
false,
false,
false,
false},
282 "Descriptor format list.",
285 {
true,
false,
false,
false,
false},
292 "commands_3dm::GpsMessageFormat",
293 "gps_message_format",
294 "Set, read, or save the format of the GNSS data packet.\n\nThe resulting data messages will maintain the order of descriptors sent in the command.",
297 {
true,
true,
true,
true,
true},
310 "Number of descriptors (limited by payload size)",
313 {
true,
false,
false,
false,
false},
322 {
true,
false,
false,
false,
false},
329 "commands_3dm::FilterMessageFormat::Response",
345 FUNCTION_SELECTOR_PARAM,
348 "Number of descriptors (limited by payload size)",
351 {
true,
false,
false,
false,
false},
360 {
true,
false,
false,
false,
false},
367 "commands_3dm::FilterMessageFormat",
368 "filter_message_format",
369 "Set, read, or save the format of the Estimation Filter data packet.\n\nThe resulting data messages will maintain the order of descriptors sent in the command.",
372 {
true,
true,
true,
true,
true},
388 {
true,
false,
false,
false,
false},
395 "commands_3dm::ImuGetBaseRate::Response",
411 "commands_3dm::ImuGetBaseRate",
412 "Get IMU Data Base Rate",
413 "Get the base rate for the IMU data in Hz\n\nThis is the fastest rate for this type of data available on the device.\nThis is used in conjunction with the IMU Message Format Command to set streaming data at a specified rate.",
432 {
true,
false,
false,
false,
false},
439 "commands_3dm::GpsGetBaseRate::Response",
455 "commands_3dm::GpsGetBaseRate",
456 "Get GNSS Data Base Rate",
457 "Get the base rate for the GNSS data in Hz\n\nThis is the fastest rate for this type of data available on the device.\nThis is used in conjunction with the GNSS Message Format Command to set streaming data at a specified rate.",
476 {
true,
false,
false,
false,
false},
483 "commands_3dm::FilterGetBaseRate::Response",
499 "commands_3dm::FilterGetBaseRate",
500 "Get Estimation Filter Data Base Rate",
501 "Get the base rate for the Estimation Filter data in Hz\n\nThis is the fastest rate for this type of data available on the device.\nThis is used in conjunction with the Estimation Filter Message Format Command to set streaming data at a specified rate.",
517 "Data descriptor set. Must be supported.",
520 {
true,
false,
false,
false,
false},
526 "Suppress the usual ACK/NACK reply.",
529 {
true,
false,
false,
false,
false},
535 "Number of descriptors in the format list.",
538 {
true,
false,
false,
false,
false},
544 "Descriptor format list.",
547 {
true,
false,
false,
false,
false},
554 "commands_3dm::PollData",
556 "Poll the device for a message with the specified descriptor set and format.\n\nThis function polls for a message using the provided format. The resulting message\nwill maintain the order of descriptors sent in the command and any unrecognized\ndescriptors are ignored. If the format is not provided, the device will attempt to use the\nstored format (set with the Set Message Format command.) If no format is provided\nand there is no stored format, the device will respond with a NACK. The reply packet contains\nan ACK/NACK field. The polled data packet is sent separately as a normal Data packet.",
572 "Echoes the parameter in the command.",
575 {
true,
false,
false,
false,
false,
true},
581 "Base rate in Hz (0 = variable, unknown, or user-defined rate. Data will be sent when received).",
584 {
true,
false,
false,
false,
false},
591 "commands_3dm::GetBaseRate::Response",
609 "This is the data descriptor set. It must be a supported descriptor.",
612 {
true,
false,
false,
false,
false,
true},
619 "commands_3dm::GetBaseRate",
620 "Get Data Base Rate",
621 "Get the base rate for the specified descriptor set in Hz.",
637 "Echoes the descriptor set from the command.",
640 {
true,
false,
false,
false,
false,
true},
646 "Number of descriptors in the list.",
649 {
true,
false,
false,
false,
false},
655 "List of descriptors and decimations.",
658 {
true,
false,
false,
false,
false},
665 "commands_3dm::MessageFormat::Response",
681 FUNCTION_SELECTOR_PARAM,
684 "Data descriptor set. Must be supported. When function is SAVE, LOAD, or DEFAULT, can be 0 to apply to all descriptor sets.",
687 {
true,
true,
true,
true,
true,
true},
693 "Number of descriptors (limited by payload size)",
696 {
true,
false,
false,
false,
false},
702 "List of descriptors and decimations.",
705 {
true,
false,
false,
false,
false},
712 "commands_3dm::MessageFormat",
714 "Set, read, or save the format for a given data packet.\n\nThe resulting data messages will maintain the order of descriptors sent in the command.",
717 {
true,
true,
true,
true,
true},
728 { uint32_t(1),
"GGA",
"GPS System Fix Data. Source can be the Filter or GNSS1/2 datasets." },
729 { uint32_t(2),
"GLL",
"Geographic Position Lat/Lon. Source can be the Filter or GNSS1/2 datasets." },
730 { uint32_t(3),
"GSV",
"GNSS Satellites in View. Source must be either GNSS1 or GNSS2 datasets. The talker ID must be set to IGNORED." },
731 { uint32_t(4),
"RMC",
"Recommended Minimum Specific GNSS Data. Source can be the Filter or GNSS1/2 datasets." },
732 { uint32_t(5),
"VTG",
"Course over Ground. Source can be the Filter or GNSS1/2 datasets." },
733 { uint32_t(6),
"HDT",
"Heading, True. Source can be the Filter or GNSS1/2 datasets." },
734 { uint32_t(7),
"ZDA",
"Time & Date. Source must be the GNSS1 or GNSS2 datasets." },
735 { uint32_t(8),
"GST",
"Position Error Statistics. Source can be the Filter or GNSS1/2 datasets." },
736 { uint32_t(129),
"MSRA",
"MicroStrain proprietary Euler angles. Source must be the Filter dataset. The talker ID must be set to IGNORED." },
737 { uint32_t(130),
"MSRR",
"MicroStrain proprietary Angular Rate/Acceleration. Source must be the Sensor dataset. The talker ID must be set to IGNORED." },
755 { uint32_t(0),
"IGNORED",
"Talker ID cannot be changed." },
756 { uint32_t(1),
"GNSS",
"NMEA message will be produced with talker id 'GN'." },
757 { uint32_t(2),
"GPS",
"NMEA message will be produced with talker id 'GP'." },
758 { uint32_t(3),
"GALILEO",
"NMEA message will be produced with talker id 'GA'." },
759 { uint32_t(4),
"GLONASS",
"NMEA message will be produced with talker id 'GL'." },
779 "NMEA sentence type.",
788 "NMEA talker ID. Ignored for proprietary sentences.",
797 "Data descriptor set where the data will be sourced. Available options depend on the sentence.",
806 "Decimation from the base rate for source_desc_set. Frequency is limited to 10 Hz or the base rate, whichever is lower. Must be 0 when polling.",
831 "Suppress the usual ACK/NACK reply.",
834 {
true,
false,
false,
false,
false},
840 "Number of format entries (limited by payload size)",
843 {
true,
false,
false,
false,
false},
849 "List of format entries.",
852 {
true,
false,
false,
false,
false},
859 "commands_3dm::NmeaPollData",
861 "Poll the device for a NMEA message with the specified format.\n\nThis function polls for a NMEA message using the provided format.\nIf the format is not provided, the device will attempt to use the\nstored format (set with the Set NMEA Message Format command.) If no format is provided\nand there is no stored format, the device will respond with a NACK. The reply packet contains\nan ACK/NACK field. The polled data packet is sent separately as normal NMEA messages.",
877 "Number of format entries (limited by payload size)",
880 {
true,
false,
false,
false,
false},
886 "List of format entries.",
889 {
true,
false,
false,
false,
false},
896 "commands_3dm::NmeaMessageFormat::Response",
912 FUNCTION_SELECTOR_PARAM,
915 "Number of format entries (limited by payload size)",
918 {
true,
false,
false,
false,
false},
924 "List of format entries.",
927 {
true,
false,
false,
false,
false},
934 "commands_3dm::NmeaMessageFormat",
935 "nmea_message_format",
936 "Set, read, or save the NMEA message format.",
939 {
true,
true,
true,
true,
true},
950 FUNCTION_SELECTOR_PARAM,
955 "commands_3dm::DeviceSettings",
957 "Save, Load, or Reset to Default the values for all device settings.\n\nWhen a save current settings command is issued, a brief data disturbance may occur while all settings are written to non-volatile memory.\n\nThis command should have a long timeout as it may take up to 1 second to complete.",
960 {
false,
false,
true,
true,
true},
976 {
true,
false,
false,
false,
false},
983 "commands_3dm::UartBaudrate::Response",
999 FUNCTION_SELECTOR_PARAM,
1005 {
true,
false,
false,
false,
false},
1012 "commands_3dm::UartBaudrate",
1014 "Read, Save, Load, or Reset to Default the baud rate of the main communication channel.\n\nFor all functions except 0x01 (use new settings), the new baud rate value is ignored.\nPlease see the device user manual for supported baud rates.\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.",
1017 {
true,
true,
true,
true,
true},
1028 { uint32_t(0),
"OVERWRITE",
"Replaces the message format(s), removing any existing descriptors." },
1029 { uint32_t(1),
"MERGE",
"Merges support descriptors into existing format(s). May reorder descriptors." },
1030 { uint32_t(2),
"ADD",
"Adds descriptors to the current message format(s) without changing existing descriptors. May result in duplicates." },
1053 {
true,
false,
false,
false,
false},
1059 "Reserved. Set to 0x00.",
1062 {
true,
false,
false,
false,
false},
1069 "commands_3dm::FactoryStreaming",
1070 "factory_streaming",
1071 "Configures the device for recording data for technical support.\n\nThis command will configure all available data streams to predefined\nformats designed to be used with technical support.",
1090 {
true,
false,
false,
false,
false,
true},
1099 {
true,
false,
false,
false,
false},
1106 "commands_3dm::DatastreamControl::Response",
1122 FUNCTION_SELECTOR_PARAM,
1125 "The descriptor set of the stream to control. When function is SAVE, LOAD, or DEFAULT, can be ALL_STREAMS(0) to apply to all descriptor sets.\nOn Generation 5 products, this must be one of the above legacy constants.",
1128 {
true,
true,
true,
true,
true,
true},
1134 "True or false to enable or disable the stream.",
1137 {
true,
false,
false,
false,
false},
1144 "commands_3dm::DatastreamControl",
1145 "datastream_control",
1146 "Enable/disable the selected data stream.\n\nEach data stream (descriptor set) can be enabled or disabled.\nThe default for the device is all streams enabled.\nFor all functions except 0x01 (use new setting),\nthe new enable flag value is ignored and can be omitted.",
1149 {
true,
true,
true,
true,
true},
1155 struct MetadataFor<commands_3dm::ConstellationSettings::ConstellationId>
1160 { uint32_t(0),
"GPS",
"GPS (G1-G32)" },
1161 { uint32_t(1),
"SBAS",
"SBAS (S120-S158)" },
1162 { uint32_t(2),
"GALILEO",
"GALILEO (E1-E36)" },
1163 { uint32_t(3),
"BeiDou",
"BeiDou (B1-B37)" },
1164 { uint32_t(5),
"QZSS",
"QZSS (Q1-Q5)" },
1165 { uint32_t(6),
"GLONASS",
"GLONASS (R1-R32)" },
1183 { uint32_t(1),
"L1SAIF",
"Available only for QZSS" },
1212 "Enable/Disable constellation",
1220 "reserved_channels",
1221 "Minimum number of channels reserved for this constellation",
1230 "Maximum number of channels to use for this constallation",
1239 "Constellation option Flags",
1263 "max_channels_available",
1264 "Maximum channels available",
1267 {
true,
false,
false,
false,
false},
1273 "Maximum channels to use",
1276 {
true,
false,
false,
false,
false},
1282 "Number of constellation configurations",
1285 {
true,
false,
false,
false,
false},
1291 "Constellation Settings",
1294 {
true,
false,
false,
false,
false},
1301 "commands_3dm::ConstellationSettings::Response",
1317 FUNCTION_SELECTOR_PARAM,
1323 {
true,
false,
false,
false,
false},
1332 {
true,
false,
false,
false,
false},
1341 {
true,
false,
false,
false,
false},
1348 "commands_3dm::ConstellationSettings",
1349 "constellation_settings",
1350 "This command configures which satellite constellations are enabled and how many channels are dedicated to tracking each constellation.\n\nMaximum number of tracking channels to use (total for all constellations):\n0 to max_channels_available (from reply message)\n\nFor each constellation you wish to use, include a ConstellationSettings struct. Note the following:\n\nTotal number of tracking channels (sum of 'reserved_channels' for all constellations) must be <= 32:\n0 -> 32 Number of reserved channels\n0 -> 32 Max number of channels (>= reserved channels)\n\nThe factory default setting is: GPS and GLONASS enabled. Min/Max for GPS = 8/16, GLONASS = 8/14, SBAS = 1/3, QZSS = 0/3.\n\nWarning: SBAS functionality shall not be used in 'safety of life' applications!\nWarning: Any setting that causes the total reserved channels to exceed 32 will result in a NACK.\nWarning: You cannot enable GLONASS and BeiDou at the same time.\nNote: Enabling SBAS and QZSS augments GPS accuracy.\nNote: It is recommended to disable GLONASS and BeiDou if a GPS-only antenna or GPS-only SAW filter is used.",
1353 {
true,
true,
true,
true,
true},
1364 { uint32_t(1),
"enable_ranging",
"Use SBAS pseudo-ranges in position solution" },
1365 { uint32_t(2),
"enable_corrections",
"Use SBAS differential corrections" },
1366 { uint32_t(4),
"apply_integrity",
"Use SBAS integrity information. If enabled, only GPS satellites for which integrity information is available will be used." },
1386 "0 - SBAS Disabled, 1 - SBAS enabled",
1389 {
true,
false,
false,
false,
false},
1395 "SBAS options, see definition",
1398 {
true,
false,
false,
false,
false},
1403 "num_included_prns",
1404 "Number of SBAS PRNs to include in search (0 = include all)",
1407 {
true,
false,
false,
false,
false},
1413 "List of specific SBAS PRNs to search for",
1416 {
true,
false,
false,
false,
false},
1423 "commands_3dm::GnssSbasSettings::Response",
1439 FUNCTION_SELECTOR_PARAM,
1442 "0 - SBAS Disabled, 1 - SBAS enabled",
1445 {
true,
false,
false,
false,
false},
1451 "SBAS options, see definition",
1454 {
true,
false,
false,
false,
false},
1459 "num_included_prns",
1460 "Number of SBAS PRNs to include in search (0 = include all)",
1463 {
true,
false,
false,
false,
false},
1469 "List of specific SBAS PRNs to search for",
1472 {
true,
false,
false,
false,
false},
1479 "commands_3dm::GnssSbasSettings",
1481 "Configure the SBAS subsystem\n\n\n",
1484 {
true,
true,
true,
true,
true},
1495 { uint32_t(0),
"NONE",
"No assisted fix (default)" },
1496 { uint32_t(1),
"ENABLED",
"Enable assisted fix" },
1500 "AssistedFixOption",
1516 "Assisted fix options",
1519 {
true,
false,
false,
false,
false},
1525 "Assisted fix flags (set to 0xFF)",
1528 {
true,
false,
false,
false,
false},
1535 "commands_3dm::GnssAssistedFix::Response",
1551 FUNCTION_SELECTOR_PARAM,
1554 "Assisted fix options",
1557 {
true,
false,
false,
false,
false},
1563 "Assisted fix flags (set to 0xFF)",
1566 {
true,
false,
false,
false,
false},
1573 "commands_3dm::GnssAssistedFix",
1574 "GNSS Assisted Fix Settings",
1575 "Set the options for assisted GNSS fix.\n\nDevices that implement this command have a dedicated GNSS flash memory and a non-volatile FRAM.\nThese storage mechanisms are used to retain information about the last good GNSS fix. This can greatly reduces the TTFF (Time To First Fix) depending on the age of the stored information.\nThe TTFF can be as low as one second, or up to the equivalent of a cold start. There is a small increase in power used when enabling assisted fix.\n\nThe fastest fix will be obtained by supplying the device with a GNSS Assist Time Update message containing the current GPS time immediately after subsequent power up.\nThis allows the device to determine if the last GNSS information saved is still fresh enough to improve the TTFF.\n\nNOTE: Non-volatile GNSS memory is cleared when going from an enabled state to a disabled state.\nWARNING: The clearing operation results in an erase operation on the GNSS Flash. The flash has a limited durability of 100,000 write/erase cycles",
1578 {
true,
true,
true,
true,
true},
1591 "GPS Time of week [seconds]",
1594 {
true,
false,
false,
false,
false},
1600 "GPS Weeks since 1980 [weeks]",
1603 {
true,
false,
false,
false,
false},
1609 "Accuracy of time information [seconds]",
1612 {
true,
false,
false,
false,
false},
1619 "commands_3dm::GnssTimeAssistance::Response",
1635 FUNCTION_SELECTOR_PARAM,
1638 "GPS Time of week [seconds]",
1641 {
true,
false,
false,
false,
false},
1647 "GPS Weeks since 1980 [weeks]",
1650 {
true,
false,
false,
false,
false},
1656 "Accuracy of time information [seconds]",
1659 {
true,
false,
false,
false,
false},
1666 "commands_3dm::GnssTimeAssistance",
1667 "gnss_time_assistance",
1668 "Provide the GNSS subsystem with initial time information.\n\nThis message is required immediately after power up if GNSS Assist was enabled when the device was powered off.\nThis will initialize the subsystem clock to help reduce the time to first fix (TTFF).",
1671 {
true,
true,
false,
false,
false},
1683 "target_descriptor",
1687 {
true,
false,
false,
false,
false,
true},
1693 "True if the filter is currently enabled.",
1696 {
true,
false,
false,
false,
false},
1702 "True if the filter cutoff was manually configured.",
1705 {
true,
false,
false,
false,
false},
1711 "The cutoff frequency of the filter. If the filter is in\nauto mode, this value is unspecified.",
1714 {
true,
false,
false,
false,
false},
1720 "Reserved and must be ignored.",
1723 {
true,
false,
false,
false,
false},
1730 "commands_3dm::ImuLowpassFilter::Response",
1746 FUNCTION_SELECTOR_PARAM,
1748 "target_descriptor",
1749 "Field descriptor of filtered quantity within the Sensor data set.\nSupported values are accel (0x04), gyro (0x05), mag (0x06), and\npressure (0x17), provided the data is supported by the device.\nExcept with the READ function selector, this can be 0 to apply to all of the above quantities.",
1752 {
true,
true,
true,
true,
true,
true},
1758 "The target data will be filtered if this is true.",
1761 {
true,
false,
false,
false,
false},
1767 "If false, the cutoff frequency is set to half of the\nstreaming rate as configured by the message format command.\nOtherwise, the cutoff frequency is set according to the\nfollowing 'frequency' parameter.",
1770 {
true,
false,
false,
false,
false},
1776 "-3dB cutoff frequency in Hz. Will not affect filtering if 'manual' is false.",
1779 {
true,
false,
false,
false,
false},
1785 "Reserved, set to 0x00.",
1788 {
true,
false,
false,
false,
false},
1795 "commands_3dm::ImuLowpassFilter",
1796 "Advanced Low-Pass Filter Settings",
1797 "Advanced configuration for the IMU data quantity low-pass filters.\n\nDeprecated, use the lowpass filter (0x0C,0x54) command instead.\n\nThe scaled data quantities are by default filtered through a single-pole IIR low-pass filter\nwhich is configured with a -3dB cutoff frequency of half the reporting frequency (set by\ndecimation factor in the IMU Message Format command) to prevent aliasing on a per data\nquantity basis. This advanced configuration command allows for the cutoff frequency to\nbe configured independently of the data reporting frequency as well as allowing for a\ncomplete bypass of the digital low-pass filter.\n\nPossible data descriptors:\n0x04 - Scaled accelerometer data\n0x05 - Scaled gyro data\n0x06 - Scaled magnetometer data (if applicable)\n0x17 - Scaled pressure data (if applicable)",
1800 {
true,
true,
true,
true,
true},
1811 { uint32_t(0),
"DISABLED",
"PPS output is disabled. Not valid for PPS source command." },
1812 { uint32_t(1),
"RECEIVER_1",
"PPS is provided by GNSS receiver 1." },
1813 { uint32_t(2),
"RECEIVER_2",
"PPS is provided by GNSS receiver 2." },
1814 { uint32_t(3),
"GPIO",
"PPS is provided to an external GPIO pin. Use the GPIO Setup command to choose and configure the pin." },
1815 { uint32_t(4),
"GENERATED",
"PPS is generated from the system oscillator." },
1838 {
true,
false,
false,
false,
false},
1845 "commands_3dm::PpsSource::Response",
1861 FUNCTION_SELECTOR_PARAM,
1867 {
true,
false,
false,
false,
false},
1874 "commands_3dm::PpsSource",
1876 "Controls the Pulse Per Second (PPS) source.",
1879 {
true,
true,
true,
true,
true},
1890 { uint32_t(0),
"UNUSED",
"The pin is not used. It may be technically possible to read the pin state in this mode, but this is not guaranteed to be true of all devices or pins." },
1891 { uint32_t(1),
"GPIO",
"General purpose input or output. Use this for direct control of pin output state or to stream the state of the pin." },
1892 { uint32_t(2),
"PPS",
"Pulse per second input or output." },
1893 { uint32_t(3),
"ENCODER",
"Motor encoder/odometer input." },
1894 { uint32_t(4),
"TIMESTAMP",
"Precision Timestamping. Use with Event Trigger Configuration (0x0C,0x2E)." },
1895 { uint32_t(5),
"UART",
"UART data or control lines." },
1913 { uint32_t(0),
"UNUSED",
"Use 0 unless otherwise specified." },
1914 { uint32_t(1),
"GPIO_INPUT",
"Pin will be an input. This can be used to stream or poll the value and is the default setting." },
1915 { uint32_t(2),
"GPIO_OUTPUT_LOW",
"Pin is an output initially in the LOW state. This state will be restored during system startup if the configuration is saved." },
1916 { uint32_t(3),
"GPIO_OUTPUT_HIGH",
"Pin is an output initially in the HIGH state. This state will be restored during system startup if the configuration is saved." },
1917 { uint32_t(1),
"PPS_INPUT",
"Pin will receive the pulse-per-second signal. Only one pin can have this behavior. This will only work if the PPS Source command is configured to GPIO." },
1918 { uint32_t(2),
"PPS_OUTPUT",
"Pin will transmit the pulse-per-second signal from the device." },
1919 { uint32_t(1),
"ENCODER_A",
"Encoder 'A' quadrature input. Only one pin can have this behavior. The last command to set this behavior will take precedence." },
1920 { uint32_t(2),
"ENCODER_B",
"Encoder 'B' quadrature input. Only one pin can have this behavior. The last command to set this behavior will take precedence." },
1921 { uint32_t(1),
"TIMESTAMP_RISING",
"Rising edges will be timestamped." },
1922 { uint32_t(2),
"TIMESTAMP_FALLING",
"Falling edges will be timestamped." },
1923 { uint32_t(3),
"TIMESTAMP_EITHER",
"Both rising and falling edges will be timestamped." },
1924 { uint32_t(33),
"UART_PORT2_TX",
"(0x21) UART port 2 transmit." },
1925 { uint32_t(34),
"UART_PORT2_RX",
"(0x22) UART port 2 receive." },
1926 { uint32_t(49),
"UART_PORT3_TX",
"(0x31) UART port 3 transmit." },
1927 { uint32_t(50),
"UART_PORT3_RX",
"(0x32) UART port 3 receive." },
1945 { uint32_t(1),
"open_drain",
"The pin will be an open-drain output. The state will be either LOW or FLOATING instead of LOW or HIGH, respectively. This is used to connect multiple open-drain outputs from several devices. An internal or external pull-up resistor is typically used in combination. The maximum voltage of an open drain output is subject to the device maximum input voltage range found in the specifications." },
1946 { uint32_t(2),
"pulldown",
"The pin will have an internal pull-down resistor enabled. This is useful for connecting inputs to signals which can only be pulled high such as mechanical switches. Cannot be used in combination with pull-up. See the device specifications for the resistance value." },
1947 { uint32_t(4),
"pullup",
"The pin will have an internal pull-up resistor enabled. Useful for connecting inputs to signals which can only be pulled low such as mechanical switches, or in combination with an open drain output. Cannot be used in combination with pull-down. See the device specifications for the resistance value. Use of this mode may restrict the maximum allowed input voltage. See the device datasheet for details." },
1967 "GPIO pin number counting from 1. For save, load, and default function selectors, this can be 0 to select all pins.",
1970 {
true,
true,
true,
true,
true,
true},
1976 "Determines how the pin will be used.",
1979 {
true,
false,
false,
false,
false},
1985 "Select an appropriate value from the enumeration based on the selected feature (e.g. for PPS, select one of the values prefixed with PPS_.)",
1988 {
true,
false,
false,
false,
false},
1994 "GPIO configuration. May be restricted depending on device, pin, feature, and behavior. See device user manual.",
1997 {
true,
false,
false,
false,
false},
2004 "commands_3dm::GpioConfig::Response",
2020 FUNCTION_SELECTOR_PARAM,
2023 "GPIO pin number counting from 1. For save, load, and default function selectors, this can be 0 to select all pins.",
2026 {
true,
true,
true,
true,
true,
true},
2032 "Determines how the pin will be used.",
2035 {
true,
false,
false,
false,
false},
2041 "Select an appropriate value from the enumeration based on the selected feature (e.g. for PPS, select one of the values prefixed with PPS_.)",
2044 {
true,
false,
false,
false,
false},
2050 "GPIO configuration. May be restricted depending on device, pin, feature, and behavior. See device user manual.",
2053 {
true,
false,
false,
false,
false},
2060 "commands_3dm::GpioConfig",
2061 "GPIO Configuration",
2062 "Configures the user GPIO pins on the connector for use with several built-in functions or for general input or output.\n\nGPIO pins are device-dependent. Some features are only available on\ncertain pins. Some behaviors require specific configurations.\nConsult the device user manual for restrictions and default settings.\n\nTo avoid glitches on GPIOs configured as an output in a mode other than\nGPIO, always configure the relevant function before setting up the pin\nwith this command. Otherwise, the pin state will be undefined between\nthis command and the one to set up the feature. For input pins, use\nthis command first so the state is well-defined when the feature is\ninitialized.\n\nSome configurations can only be active on one pin at a time. If such\nconfiguration is applied to a second pin, the second one will take\nprecedence and the original pin's configuration will be reset.\n",
2065 {
true,
true,
true,
true,
true},
2078 "GPIO pin number counting from 1. Cannot be 0.",
2081 {
true,
true,
false,
false,
false,
true},
2090 {
true,
false,
false,
false,
false},
2097 "commands_3dm::GpioState::Response",
2113 FUNCTION_SELECTOR_PARAM,
2116 "GPIO pin number counting from 1. Cannot be 0.",
2119 {
true,
true,
false,
false,
false,
true},
2128 {
true,
false,
false,
false,
false},
2135 "commands_3dm::GpioState",
2137 "Allows the state of the pin to be read or controlled.\n\nThis command serves two purposes: 1) To allow reading the state of a pin via command,\nrather than polling a data quantity, and 2) to provide a way to set the output state\nwithout also having to specify the operating mode.\n\nThe state read back from the pin is the physical state of the pin, rather than a\nconfiguration value. The state can be read regardless of its configuration as long as\nthe device supports GPIO input on that pin. If the pin is set to an output, the read\nvalue would match the output value.\n\nWhile the state of a pin can always be set, it will only have an observable effect if\nthe pin is set to output mode.\n\nThis command does not support saving, loading, or resetting the state. Instead, use the\nGPIO Configuration command, which allows the initial state to be configured.",
2140 {
true,
true,
false,
false,
false},
2151 { uint32_t(0),
"DISABLED",
"Encoder is disabled." },
2152 { uint32_t(2),
"QUADRATURE",
"Quadrature encoder mode." },
2175 {
true,
false,
false,
false,
false},
2181 "Encoder pulses per meter of distance traveled [pulses/m].\nDistance traveled is computed using the formula d = p / N * 2R * pi, where d is distance,\np is the number of pulses received, N is the encoder resolution, and R is the wheel radius.\nBy simplifying all of the parameters into one, the formula d = p / S is obtained, where s\nis the odometer scaling factor passed to this command. S is equivalent to N / (2R * pi) and\nhas units of pulses / meter. N is in units of 'A' pulses per revolution and R is in meters.\nMake this value negative if the odometer is mounted so that it rotates backwards.",
2184 {
true,
false,
false,
false,
false},
2190 "Uncertainty in encoder counts to distance translation (1-sigma value) [m/m].",
2193 {
true,
false,
false,
false,
false},
2200 "commands_3dm::Odometer::Response",
2216 FUNCTION_SELECTOR_PARAM,
2222 {
true,
false,
false,
false,
false},
2228 "Encoder pulses per meter of distance traveled [pulses/m].\nDistance traveled is computed using the formula d = p / N * 2R * pi, where d is distance,\np is the number of pulses received, N is the encoder resolution, and R is the wheel radius.\nBy simplifying all of the parameters into one, the formula d = p / S is obtained, where s\nis the odometer scaling factor passed to this command. S is equivalent to N / (2R * pi) and\nhas units of pulses / meter. N is in units of 'A' pulses per revolution and R is in meters.\nMake this value negative if the odometer is mounted so that it rotates backwards.",
2231 {
true,
false,
false,
false,
false},
2237 "Uncertainty in encoder counts to distance translation (1-sigma value) [m/m].",
2240 {
true,
false,
false,
false,
false},
2247 "commands_3dm::Odometer",
2248 "Odometer Settings",
2249 "Configures the hardware odometer interface.\n",
2252 {
true,
true,
true,
true,
true},
2263 { uint32_t(1),
"TRIGGER_TYPES",
"Query the supported trigger types and max count for each." },
2264 { uint32_t(2),
"ACTION_TYPES",
"Query the supported action types and max count for each." },
2284 "Trigger or action type, as defined in the respective setup command.",
2293 "This is the maximum number of instances supported for this type.",
2318 "Query type specified in the command.",
2321 {
true,
false,
false,
false,
false,
true},
2327 "Number of slots available. The 'instance' number for\nthe configuration or control commands must be between 1 and this value.",
2330 {
true,
false,
false,
false,
false},
2336 "Number of supported types.",
2339 {
true,
false,
false,
false,
false},
2345 "List of supported types.",
2348 {
true,
false,
false,
false,
false},
2355 "commands_3dm::GetEventSupport::Response",
2373 "What type of information to retrieve.",
2376 {
true,
false,
false,
false,
false,
true},
2383 "commands_3dm::GetEventSupport",
2384 "Get Supported Events",
2385 "Lists the available trigger or action types.\n\nThere are a limited number of trigger and action slots available\nin the device. Up to M triggers and N actions can be configured at once\nin slots 1..M and 1..N respectively. M and N are identified by the\nmax_instances field in the response with the appropriate query selector.\n\nEach slot can be configured as one of a variety of different types of\ntriggers or actions. The supported types are enumerated in the response\nto this command. Additionally, there is a limit on the number of a given\ntype. In other words, while the device may support M triggers in total,\nonly a few of them maybe usable as a given type. This limit helps optimize\ndevice resources. The limit is identified in the count field.\n\nAll of the information in this command is available in the user manual.\nThis command provides a programmatic method for obtaining the information.\n",
2399 { uint32_t(0),
"DISABLED",
"Trigger is disabled." },
2400 { uint32_t(1),
"ENABLED",
"Trigger is enabled and will work normally." },
2401 { uint32_t(2),
"TEST",
"Forces the trigger to the active state for testing purposes." },
2402 { uint32_t(3),
"TEST_PULSE",
"Trigger is forced to the active state for one event cycle only. After the test cycle, the mode reverts to the previous state (either enabled or disabled)." },
2422 "Trigger instance to affect. 0 can be used to apply the mode to all\nconfigured triggers, except when the function selector is READ.",
2425 {
true,
true,
true,
true,
true,
true},
2431 "How to change the trigger state. Except when instance is 0, the\ncorresponding trigger must be configured, i.e. not have type 0.",
2434 {
true,
false,
false,
false,
false},
2441 "commands_3dm::EventControl::Response",
2457 FUNCTION_SELECTOR_PARAM,
2460 "Trigger instance to affect. 0 can be used to apply the mode to all\nconfigured triggers, except when the function selector is READ.",
2463 {
true,
true,
true,
true,
true,
true},
2469 "How to change the trigger state. Except when instance is 0, the\ncorresponding trigger must be configured, i.e. not have type 0.",
2472 {
true,
false,
false,
false,
false},
2479 "commands_3dm::EventControl",
2481 "Enables or disables event triggers.\n\nTriggers can be disabled, enabled, and tested. While disabled, a trigger will\nnot evaluate its logic and effective behave like no trigger is configured.\nA disabled trigger will not activate any actions. Triggers are disabled by default.\n\nUse this command to enable (or disable) a trigger, or to place it into a test mode.\nWhen in test mode, the trigger logic is disabled but the output is forced to\nthe active state, meaning that it will behave as if the trigger logic is satisfied\nand any associated actions will execute.",
2484 {
true,
true,
true,
true,
true},
2495 { uint32_t(1),
"active",
"True if the trigger is currently active (either due to its logic or being in test mode)." },
2496 { uint32_t(2),
"enabled",
"True if the trigger is enabled." },
2497 { uint32_t(4),
"test",
"True if the trigger is in test mode." },
2517 "Configured trigger type.",
2551 "Number of entries requested. If requested_count was 0, this is the number of supported trigger slots.",
2554 {
true,
false,
false,
false,
false},
2560 "A list of the configured triggers. Entries are in the order requested, or in increasing order if count was 0.",
2563 {
true,
false,
false,
false,
false},
2570 "commands_3dm::GetEventTriggerStatus::Response",
2588 "Number of entries requested. If 0, requests all trigger slots.",
2591 {
true,
false,
false,
false,
false},
2596 "requested_instances",
2597 "List of trigger instances to query.",
2600 {
true,
false,
false,
false,
false},
2607 "commands_3dm::GetEventTriggerStatus",
2608 "Get Trigger Status",
2625 "Configured action type.",
2634 "Associated trigger instance.",
2659 "Number of entries requested. If requested_count was 0, this is the number of supported action slots.",
2662 {
true,
false,
false,
false,
false},
2668 "A list of the configured actions. Entries are in the order requested, or in increasing order if count was 0.",
2671 {
true,
false,
false,
false,
false},
2678 "commands_3dm::GetEventActionStatus::Response",
2696 "Number of entries requested. If 0, requests all action slots.",
2699 {
true,
false,
false,
false,
false},
2704 "requested_instances",
2705 "List of action instances to query.",
2708 {
true,
false,
false,
false,
false},
2715 "commands_3dm::GetEventActionStatus",
2716 "Get Action Status",
2731 { uint32_t(0),
"DISABLED",
"The pin will have no effect and the trigger will never activate." },
2732 { uint32_t(1),
"WHILE_HIGH",
"The trigger will be active while the pin is high." },
2733 { uint32_t(2),
"WHILE_LOW",
"The trigger will be active while the pin is low." },
2734 { uint32_t(4),
"EDGE",
"Use if the pin is configured for timestamping via the 3DM Gpio Configuration command (0x0C41)." },
2763 "How the pin state affects the trigger.",
2786 { uint32_t(1),
"WINDOW",
"Window comparison. Trigger is active if low_thres <= value <= high_thres. If the thresholds are reversed, the trigger is active when value < high_thres or value > low_thres." },
2787 { uint32_t(2),
"INTERVAL",
"Trigger at evenly-spaced intervals. Normally used with time fields to trigger periodically. Trigger is active when (value % interval) <= int_thres. If the thresholds are reversed (high_thres < low_thres) then the trigger is active when (value % low_thres) > high_thres." },
2807 "Descriptor set of target data quantity.",
2816 "Field descriptor of target data quantity.",
2825 "1-based index of the target parameter within the MIP field. E.g. for Scaled Accel (0x80,0x04) a value of 2 would represent the Y axis.",
2834 "Determines the type of comparison.",
2882 "Comparison of a supported MIP field parameter against a set of thresholds.\n\nTriggers when a data quantity meets the comparison criteria. The comparison can be either\na window comparison with high and low thresholds or a periodic interval.\n\nThe data quantity is identified by the MIP descriptor set, field descriptor, and parameter number.\nE.g. Scaled acceleration in the Z direction is specified with desc_set=0x80 (sensor data),\nfield_desc=0x04 (scaled accel), and param_id=3 (the third parameter and Z axis).\n\nThe window comparison can be used for a variety of purposes, such as disabling\na robot's drive motors if it tips over. In this case, a window comparison could\nbe set up to monitor the roll angle, (0x80,0x0C,3). The lower threshold would be set\nto -pi/2 radians and the upper threshold to pi/2 radians.\n\nThe interval trigger can be used to perform an action periodically if used with\na time field. E.g. to execute the action every 16 ms, set an interval comparison on\nthe GPS time of week parameter (0x80,0xD3,1) with high_thres set to 0.016. The lower\nthreshold determines how long the trigger is active within the 16-ms period.\n\nEither comparison type can be inverted by reversing the threshold values; setting\nlow_thres > high_thres will result in the reverse condition.\n",
2895 "The last column of a truth table describing the output given the state of each input.",
2904 "List of trigger IDs for inputs. Use 0 for unused inputs.",
2914 "CombinationParams",
2915 "Combinationparams",
2927 { uint32_t(0),
"NONE",
"No trigger selected. The state will always be inactive." },
2928 { uint32_t(1),
"GPIO",
"Trigger based on the state of a GPIO pin. See GpioParams." },
2929 { uint32_t(2),
"THRESHOLD",
"Compare a data quantity against a high and low threshold. See ThresholdParams." },
2930 { uint32_t(3),
"COMBINATION",
"Logical combination of two or more triggers. See CombinationParams." },
2993 "Trigger number. When function is SAVE, LOAD, or DEFAULT, this can be 0 to apply to all instances.",
2996 {
true,
true,
true,
true,
true,
true},
3002 "Type of trigger to configure.",
3005 {
true,
false,
false,
false,
false},
3014 {
true,
false,
false,
false,
false},
3021 "commands_3dm::EventTrigger::Response",
3037 FUNCTION_SELECTOR_PARAM,
3040 "Trigger number. When function is SAVE, LOAD, or DEFAULT, this can be 0 to apply to all instances.",
3043 {
true,
true,
true,
true,
true,
true},
3049 "Type of trigger to configure.",
3052 {
true,
false,
false,
false,
false},
3061 {
true,
false,
false,
false,
false},
3068 "commands_3dm::EventTrigger",
3069 "Event Trigger Configuration",
3070 "Configures various types of event triggers.",
3073 {
true,
true,
true,
true,
true},
3084 { uint32_t(0),
"DISABLED",
"Pin state will not be changed." },
3085 { uint32_t(1),
"ACTIVE_HIGH",
"Pin will be set high when the trigger is active and low otherwise." },
3086 { uint32_t(2),
"ACTIVE_LOW",
"Pin will be set low when the trigger is active and high otherwise." },
3087 { uint32_t(5),
"ONESHOT_HIGH",
"Pin will be set high each time the trigger activates. It will not be set low." },
3088 { uint32_t(6),
"ONESHOT_LOW",
"Pin will be set low each time the trigger activates. It will not be set high." },
3089 { uint32_t(7),
"TOGGLE",
"Pin will change to the opposite state each time the trigger activates." },
3118 "Behavior of the pin.",
3143 "MIP data descriptor set.",
3152 "Decimation from the base rate.\nIf 0, a packet is emitted each time the trigger activates.\nOtherwise, packets will be streamed while the trigger is active.\nThe internal decimation counter is reset if the trigger deactivates.",
3161 "Number of mip fields in the packet. Limited to 12.",
3170 "List of field descriptors.",
3193 { uint32_t(0),
"NONE",
"No action. Parameters should be empty." },
3194 { uint32_t(1),
"GPIO",
"Control the state of a GPIO pin. See GpioParameters." },
3195 { uint32_t(2),
"MESSAGE",
"Output a data packet. See MessageParameters." },
3215 "Gpio parameters, if type == GPIO. Ignore otherwise.",
3224 "Message parameters, if type == MESSAGE. Ignore otherwise.",
3249 "Action number. When function is SAVE, LOAD, or DEFAULT, this can be 0 to apply to all instances.",
3252 {
true,
true,
true,
true,
true,
true},
3258 "Trigger ID number.",
3261 {
true,
false,
false,
false,
false},
3267 "Type of action to configure.",
3270 {
true,
false,
false,
false,
false},
3279 {
true,
false,
false,
false,
false},
3286 "commands_3dm::EventAction::Response",
3302 FUNCTION_SELECTOR_PARAM,
3305 "Action number. When function is SAVE, LOAD, or DEFAULT, this can be 0 to apply to all instances.",
3308 {
true,
true,
true,
true,
true,
true},
3314 "Trigger ID number.",
3317 {
true,
false,
false,
false,
false},
3323 "Type of action to configure.",
3326 {
true,
false,
false,
false,
false},
3335 {
true,
false,
false,
false,
false},
3342 "commands_3dm::EventAction",
3343 "Event Action Configuration",
3344 "Configures various types of event actions.",
3347 {
true,
true,
true,
true,
true},
3360 "accelerometer bias in the sensor frame (x,y,z) [g]",
3363 {
true,
false,
false,
false,
false},
3370 "commands_3dm::AccelBias::Response",
3386 FUNCTION_SELECTOR_PARAM,
3389 "accelerometer bias in the sensor frame (x,y,z) [g]",
3392 {
true,
false,
false,
false,
false},
3399 "commands_3dm::AccelBias",
3400 "Configure Accel Bias",
3401 "Configures the user specified accelerometer bias\n\nThe user specified bias is subtracted from the calibrated accelerometer output. Value is input in the sensor frame.",
3404 {
true,
true,
true,
true,
true},
3417 "gyro bias in the sensor frame (x,y,z) [radians/second]",
3420 {
true,
false,
false,
false,
false},
3427 "commands_3dm::GyroBias::Response",
3443 FUNCTION_SELECTOR_PARAM,
3446 "gyro bias in the sensor frame (x,y,z) [radians/second]",
3449 {
true,
false,
false,
false,
false},
3456 "commands_3dm::GyroBias",
3457 "Configure Gyro Bias",
3458 "Configures the user specified gyroscope bias\n\nThe user specified bias is subtracted from the calibrated angular rate output. Value is input in the sensor frame.",
3461 {
true,
true,
true,
true,
true},
3474 "gyro bias in the sensor frame (x,y,z) [radians/second]",
3477 {
true,
false,
false,
false,
false},
3484 "commands_3dm::CaptureGyroBias::Response",
3501 "averaging_time_ms",
3502 "Averaging time [milliseconds]",
3505 {
true,
false,
false,
false,
false},
3512 "commands_3dm::CaptureGyroBias",
3513 "Capture Gyro Bias",
3514 "Samples gyro for a specified time range and writes the averaged result to the Gyro Bias vector in RAM\n\nThe device will average the gyro output for the duration of 'averaging_time_ms.' To store the resulting vector\nin non-volatile memory, use the Set Gyro Bias command.\nIMPORTANT: The device must be stationary and experiencing minimum vibration for the duration of 'averaging_time_ms'\nAveraging Time range: 1000 to 30,000",
3530 "hard iron offset in the sensor frame (x,y,z) [Gauss]",
3533 {
true,
false,
false,
false,
false},
3540 "commands_3dm::MagHardIronOffset::Response",
3556 FUNCTION_SELECTOR_PARAM,
3559 "hard iron offset in the sensor frame (x,y,z) [Gauss]",
3562 {
true,
false,
false,
false,
false},
3569 "commands_3dm::MagHardIronOffset",
3570 "Magnetometer Hard Iron Offset",
3571 "Configure the user specified magnetometer hard iron offset vector\n\nThe values for this offset are determined empirically by external software algorithms\nbased on calibration data taken after the device is installed in its application. These values\ncan be obtained and set by using Microstrain software tools.\nAlternatively, on some systems, the auto-mag calibration feature may be used to capture these values in-run.\nThe offset is applied to the scaled magnetometer vector prior to output.",
3574 {
true,
true,
true,
true,
true},
3587 "soft iron matrix [dimensionless]",
3590 {
true,
false,
false,
false,
false},
3597 "commands_3dm::MagSoftIronMatrix::Response",
3613 FUNCTION_SELECTOR_PARAM,
3616 "soft iron matrix [dimensionless]",
3619 {
true,
false,
false,
false,
false},
3626 "commands_3dm::MagSoftIronMatrix",
3627 "Magnetometer Soft Iron Matrix",
3628 "Configure the user specified magnetometer soft iron offset matrix\n\nThe values for this matrix are determined empirically by external software algorithms\nbased on calibration data taken after the device is installed in its application. These values\ncan be obtained and set by using Microstrain software tools.\nAlternatively, on some systems, the auto-mag calibration feature may be used to capture these values in-run.\nThe matrix is applied to the scaled magnetometer vector prior to output.\n\nThe matrix is in row major order:\nEQSTART M = \\begin{bmatrix} 0 & 1 & 2 \\\\ 3 & 4 & 5 \\\\ 6 & 7 & 8 \\end{bmatrix} EQEND\n",
3631 {
true,
true,
true,
true,
true},
3644 "If true, coning and sculling compensation is enabled.",
3647 {
true,
false,
false,
false,
false},
3654 "commands_3dm::ConingScullingEnable::Response",
3670 FUNCTION_SELECTOR_PARAM,
3673 "If true, coning and sculling compensation is enabled.",
3676 {
true,
false,
false,
false,
false},
3683 "commands_3dm::ConingScullingEnable",
3684 "Coning and Sculling Enable",
3685 "Controls the Coning and Sculling Compenstation setting.",
3688 {
true,
true,
true,
true,
true},
3694 struct MetadataFor<commands_3dm::Sensor2VehicleTransformEuler::Response>
3704 {
true,
false,
false,
false,
false},
3713 {
true,
false,
false,
false,
false},
3722 {
true,
false,
false,
false,
false},
3729 "commands_3dm::Sensor2VehicleTransformEuler::Response",
3745 FUNCTION_SELECTOR_PARAM,
3751 {
true,
false,
false,
false,
false},
3760 {
true,
false,
false,
false,
false},
3769 {
true,
false,
false,
false,
false},
3776 "commands_3dm::Sensor2VehicleTransformEuler",
3777 "Sensor to Vehicle Frame Transformation Euler",
3778 "Sets the sensor-to-vehicle frame transformation using Yaw, Pitch, Roll Euler angles.\nThese are the Yaw, Pitch, and Roll mounting angles of the sensor with respect to vehicle frame of reference,\nand describe the transformation of vectors from the sensor body frame to the vehicle frame.<br/>\nNote: This is the transformation, the inverse of the rotation defined in our legacy products.<br/>\nThe transformation may be stored in the device as a matrix or quaternion. When Euler angles are read back from the device, they may not\nbe exactly equal to the Euler angles used to set the transformation, but they are functionally equivalent, such that they result in the same transformation.<br/>\n<br/><br/>\nThis transformation to the vehicle frame will be applied to the following output quantities:<br/><br/>\nIMU:<br/>\nScaled Acceleration<br/>\nScaled Gyro<br/>\nScaled Magnetometer<br/>\nDelta Theta<br/>\nDelta Velocity<br/>\nComplementary Filter Orientation<br/>\n<br/><br/>\nEstimation Filter:<br/>\nEstimated Orientation, Quaternion<br/>\nEstimated Orientation, Matrix<br/>\nEstimated Orientation, Euler Angles<br/>\nEstimated Linear Acceleration<br/>\nEstimated Angular Rate<br/>\nEstimated Gravity Vector<br/>\n<br/>\nChanging this setting will force all low-pass filters, the complementary filter, and the estimation filter to reset.",
3781 {
true,
true,
true,
true,
true},
3787 struct MetadataFor<commands_3dm::Sensor2VehicleTransformQuaternion::Response>
3794 "Unit length quaternion representing transform [w, i, j, k]",
3797 {
true,
false,
false,
false,
false},
3804 "commands_3dm::Sensor2VehicleTransformQuaternion::Response",
3820 FUNCTION_SELECTOR_PARAM,
3823 "Unit length quaternion representing transform [w, i, j, k]",
3826 {
true,
false,
false,
false,
false},
3833 "commands_3dm::Sensor2VehicleTransformQuaternion",
3834 "Sensor to Vehicle Frame Transformation Quaternion",
3835 "Set the sensor to vehicle frame transformation using unit length quaternion.\n\nNote: This is the transformation, the inverse of the rotation.\n\nThis quaternion describes the transformation of vectors from the sensor body frame to the vehicle frame of reference, and satisfies the following relationship:<br/>\n\nEQSTART p^{veh} = q^{-1} p^{sen} q EQEND<br/>\n\nWhere:<br/>\nEQSTART q = (q_w, q_x, q_y, q_z) EQEND is the quaternion describing the transformation. <br/>\nEQSTART p^{sen} = (0, v^{sen}_x, v^{sen}_y, v^{sen}_z) EQEND and EQSTART v^{sen} EQEND is a 3-element vector expressed in the sensor body frame.<br/>\nEQSTART p^{veh} = (0, v^{veh}_x, v^{veh}_y, v^{veh}_z) EQEND and EQSTART v^{veh} EQEND is a 3-element vector expressed in the vehicle frame.<br/>\n\nThe transformation may be stored in the device as a matrix or a quaternion. When the quaternion is read back from the device, it may not\nbe exactly equal to the quaternion used to set the transformation, but it is functionally equivalent.<br/>\n<br/><br/>\nThis transformation affects the following output quantities:<br/><br/>\nIMU:<br/>\nScaled Acceleration<br/>\nScaled Gyro<br/>\nScaled Magnetometer<br/>\nDelta Theta<br/>\nDelta Velocity<br/>\n<br/><br/>\nEstimation Filter:<br/>\nEstimated Orientation, Quaternion<br/>\nEstimated Orientation, Matrix<br/>\nEstimated Orientation, Euler Angles<br/>\nEstimated Linear Acceleration<br/>\nEstimated Angular Rate<br/>\nEstimated Gravity Vector<br/>\n<br/>\nChanging this setting will force all low-pass filters, the complementary filter, and the estimation filter to reset.",
3838 {
true,
true,
true,
true,
true},
3844 struct MetadataFor<commands_3dm::Sensor2VehicleTransformDcm::Response>
3851 "3 x 3 direction cosine matrix, stored in row-major order",
3854 {
true,
false,
false,
false,
false},
3861 "commands_3dm::Sensor2VehicleTransformDcm::Response",
3877 FUNCTION_SELECTOR_PARAM,
3880 "3 x 3 direction cosine matrix, stored in row-major order",
3883 {
true,
false,
false,
false,
false},
3890 "commands_3dm::Sensor2VehicleTransformDcm",
3891 "Sensor to Vehicle Frame Transformation Direction Cosine Matrix",
3892 "Set the sensor to vehicle frame transformation using a using a 3 x 3 direction cosine matrix EQSTART M_{ned}^{veh} EQEND, stored in row-major order in a 9-element array.\n\nThese angles define the transformation of vectors from the sensor body frame to the fixed vehicle frame, according to:<br/>\nEQSTART v^{veh} = M_{sen}^{veh} v^{sen} EQEND<br/>\n\nWhere:<br/>\n\nEQSTART v^{sen} EQEND is a 3-element vector expressed in the sensor body frame. <br/>\nEQSTART v^{veh} EQEND is the same 3-element vector expressed in the vehicle frame. <br/>\n<br/>\nThe matrix elements are stored is row-major order: EQSTART M_{sen}^{veh} = \\begin{bmatrix} M_{11}, M_{12}, M_{13}, M_{21}, M_{22}, M_{23}, M_{31}, M_{32}, M_{33} \\end{bmatrix} EQEND\nThe transformation may be stored in the device as a matrix or a quaternion. When EQSTART M_{sen}^{veh} EQEND is read back from the device, it may not\nbe exactly equal to array used to set the transformation, but it is functionally equivalent.<br/>\n<br/><br/>\nThis transformation affects the following output quantities:<br/><br/>\nIMU:<br/>\nScaled Acceleration<br/>\nScaled Gyro<br/>\nScaled Magnetometer<br/>\nDelta Theta<br/>\nDelta Velocity<br/>\n<br/><br/>\nEstimation Filter:<br/>\nEstimated Orientation, Quaternion<br/>\nEstimated Orientation, Matrix<br/>\nEstimated Orientation, Euler Angles<br/>\nEstimated Linear Acceleration<br/>\nEstimated Angular Rate<br/>\nEstimated Gravity Vector<br/>\n<br/>\nChanging this setting will force all low-pass filters, the complementary filter, and the estimation filter to reset.",
3895 {
true,
true,
true,
true,
true},
3907 "pitch_roll_enable",
3908 "Enable Pitch/Roll corrections",
3911 {
true,
false,
false,
false,
false},
3917 "Enable Heading corrections (only available on devices with magnetometer)",
3920 {
true,
false,
false,
false,
false},
3925 "pitch_roll_time_constant",
3926 "Time constant associated with the pitch/roll corrections [s]",
3929 {
true,
false,
false,
false,
false},
3934 "heading_time_constant",
3935 "Time constant associated with the heading corrections [s]",
3938 {
true,
false,
false,
false,
false},
3945 "commands_3dm::ComplementaryFilter::Response",
3961 FUNCTION_SELECTOR_PARAM,
3963 "pitch_roll_enable",
3964 "Enable Pitch/Roll corrections",
3967 {
true,
false,
false,
false,
false},
3973 "Enable Heading corrections (only available on devices with magnetometer)",
3976 {
true,
false,
false,
false,
false},
3981 "pitch_roll_time_constant",
3982 "Time constant associated with the pitch/roll corrections [s]",
3985 {
true,
false,
false,
false,
false},
3990 "heading_time_constant",
3991 "Time constant associated with the heading corrections [s]",
3994 {
true,
false,
false,
false,
false},
4001 "commands_3dm::ComplementaryFilter",
4002 "Complementary filter settings",
4003 "Configure the settings for the complementary filter which produces the following (0x80) descriptor set values: attitude matrix (0x80,09), quaternion (0x80,0A), and Euler angle (0x80,0C) outputs.\n\nThe filter can be configured to correct for pitch and roll using the accelerometer (with the assumption that linear acceleration is minimal),\nand to correct for heading using the magnetometer (with the assumption that the local magnetic field is dominated by the Earth's own magnetic field).\nPitch/roll and heading corrections each have their own configurable time constants, with a valid range of 1-1000 seconds. The default time constant is 10 seconds.",
4006 {
true,
true,
true,
true,
true},
4017 { uint32_t(0),
"ALL",
"Only allowed for SAVE, LOAD, and DEFAULT function selectors." },
4018 { uint32_t(1),
"ACCEL",
"Accelerometer. Range is specified in g." },
4019 { uint32_t(2),
"GYRO",
"Gyroscope. Range is specified in degrees/s." },
4020 { uint32_t(3),
"MAG",
"Magnetometer. Range is specified in Gauss." },
4021 { uint32_t(4),
"PRESS",
"Pressure sensor. Range is specified in hPa." },
4041 "Which type of sensor will get the new range value.",
4044 {
true,
true,
true,
true,
true,
true},
4050 "Use the 3DM Get Calibrated Sensor Ranges (0x0C,0x53) command to determine this value.",
4053 {
true,
false,
false,
false,
false},
4060 "commands_3dm::SensorRange::Response",
4076 FUNCTION_SELECTOR_PARAM,
4079 "Which type of sensor will get the new range value.",
4082 {
true,
true,
true,
true,
true,
true},
4088 "Use the 3DM Get Calibrated Sensor Ranges (0x0C,0x53) command to determine this value.",
4091 {
true,
false,
false,
false,
false},
4098 "commands_3dm::SensorRange",
4100 "Changes the IMU sensor gain.\n\nThis allows you to optimize the range to get the best accuracy and performance\nwhile minimizing over-range events.\n\nUse the 3DM Get Calibrated Sensor Ranges (0x0C,0x53) command to determine\nthe appropriate setting value for your application. Using values other than\nthose specified may result in a NACK or inaccurate measurement data.",
4103 {
true,
true,
true,
true,
true},
4116 "The value used in the 3DM Sensor Range command and response.",
4125 "The actual range value. Units depend on the sensor type.",
4150 "The sensor type from the command.",
4153 {
true,
false,
false,
false,
false,
true},
4159 "Number of supported ranges.",
4162 {
true,
false,
false,
false,
false},
4168 "List of possible range settings.",
4171 {
true,
false,
false,
false,
false},
4178 "commands_3dm::CalibratedSensorRanges::Response",
4196 "The sensor to query. Cannot be ALL.",
4199 {
true,
false,
false,
false,
false,
true},
4206 "commands_3dm::CalibratedSensorRanges",
4207 "Get Calibrated Sensor Ranges",
4208 "Returns the supported sensor ranges which may be used with the 3DM Sensor Range (0x0C,0x52) command.\n\nThe response includes an array of (u8, float) pairs which map each allowed setting\nto the corresponding maximum range in physical units. See SensorRangeType for units.",
4224 "Descriptor set of the quantity to be filtered.",
4227 {
true,
true,
true,
true,
true,
true},
4233 "Field descriptor of the quantity to be filtered.",
4236 {
true,
true,
true,
true,
true,
true},
4242 "The filter will be enabled if this is true.",
4245 {
true,
false,
false,
false,
false},
4251 "If false, the frequency parameter is ignored and the filter\nwill track to half of the configured message format frequency.",
4254 {
true,
false,
false,
false,
false},
4260 "Cutoff frequency in Hz. This will return the actual frequency\nwhen read out in automatic mode.",
4263 {
true,
false,
false,
false,
false},
4270 "commands_3dm::LowpassFilter::Response",
4286 FUNCTION_SELECTOR_PARAM,
4289 "Descriptor set of the quantity to be filtered.",
4292 {
true,
true,
true,
true,
true,
true},
4298 "Field descriptor of the quantity to be filtered.",
4301 {
true,
true,
true,
true,
true,
true},
4307 "The filter will be enabled if this is true.",
4310 {
true,
false,
false,
false,
false},
4316 "If false, the frequency parameter is ignored and the filter\nwill track to half of the configured message format frequency.",
4319 {
true,
false,
false,
false,
false},
4325 "Cutoff frequency in Hz. This will return the actual frequency\nwhen read out in automatic mode.",
4328 {
true,
false,
false,
false,
false},
4335 "commands_3dm::LowpassFilter",
4336 "Low-pass anti-aliasing filter",
4337 "This command controls the low-pass anti-aliasing filter supported data quantities.\n\nSee the device user manual for data quantities which support the anti-aliasing filter.\n\nIf set to automatic mode, the frequency will track half of the transmission rate\nof the target descriptor according to the configured message format (0x0C,0x0F).\nFor example, if scaled accel (0x80,0x04) is set to stream at 100 Hz, the filter would\nbe set to 50 Hz. Changing the message format to 200 Hz would automatically adjust the\nfilter to 100 Hz.\n\nFor WRITE, SAVE, LOAD, and DEFAULT function selectors, the descriptor set and/or field descriptor\nmay be 0x00 to set, save, load, or reset the setting for all supported descriptors. The\nfield descriptor must be 0x00 if the descriptor set is 0x00.\n",
4340 {
true,
true,
true,
true,
true},
4346 static constexpr
inline const FieldInfo* COMMANDS_3DM_FIELDS[] = {
4434 static constexpr DescriptorSetInfo COMMANDS_3DM = {
4437 COMMANDS_3DM_FIELDS,
Definition: commands_3dm.hpp:1503
Definition: commands_3dm.hpp:2049
Definition: commands_3dm.hpp:1418
Definition: commands_3dm.hpp:208
Definition: commands_3dm.hpp:3181
Definition: commands_3dm.hpp:1218
Definition: commands_3dm.hpp:4001
Definition: commands_3dm.hpp:1718
Definition: commands_3dm.hpp:1899
Definition: commands_3dm.hpp:3424
Definition: commands_3dm.hpp:1946
Definition: commands_3dm.hpp:2147
SensorRangeType
Definition: commands_3dm.hpp:181
Definition: commands_3dm.hpp:594
Definition: commands_3dm.hpp:2398
Definition: commands_3dm.hpp:1121
Definition: commands_3dm.hpp:1990
Definition: commands_3dm.hpp:865
@ GPIO
Trigger based on the state of a GPIO pin. See GpioParams.
Definition: commands_3dm.hpp:838
Mode
Definition: commands_3dm.hpp:2288
Definition: commands_3dm.hpp:2485
Definition: commands_3dm.hpp:1859
Definition: commands_3dm.hpp:2974
Source
Definition: commands_3dm.hpp:1948
Definition: commands_3dm.hpp:2781
@ THRESHOLD
Compare a data quantity against a high and low threshold. See ThresholdParams.
MessageID
Definition: commands_3dm.hpp:147
Definition: commands_3dm.hpp:1620
Definition: commands_3dm.hpp:2760
Definition: commands_3dm.hpp:750
Definition: commands_3dm.hpp:2573
Definition: commands_3dm.hpp:2080
Definition: commands_3dm.hpp:1357
Definition: commands_3dm.hpp:2683
Definition: commands_3dm.hpp:2434
Definition: commands_3dm.hpp:1316
Definition: commands_3dm.hpp:618
Definition: commands_3dm.hpp:3256
Query
Definition: commands_3dm.hpp:2392
Definition: commands_3dm.hpp:3229
Definition: commands_3dm.hpp:684
Definition: commands_3dm.hpp:2842
Definition: commands_3dm.hpp:3018
@ COMBINATION
Logical combination of two or more triggers. See CombinationParams.
Definition: mip_structures.hpp:67
Definition: commands_3dm.hpp:3467
@ INTERVAL
Trigger at evenly-spaced intervals. Normally used with time fields to trigger periodically....
Definition: commands_3dm.hpp:2208
Mode
Definition: commands_3dm.hpp:2487
Definition: commands_3dm.hpp:3301
@ DESCRIPTOR_SET
Definition: commands_3dm.hpp:31
@ GPIO
Control the state of a GPIO pin. See GpioParameters.
Definition: commands_3dm.hpp:256
@ WINDOW
Window comparison. Trigger is active if low_thres <= value <= high_thres. If the thresholds are rever...
Definition: commands_3dm.hpp:2810
Mode
Definition: commands_3dm.hpp:2764
Definition: commands_3dm.hpp:2390
Definition: commands_3dm.hpp:726
Mode
Definition: commands_3dm.hpp:2935
Behavior
Definition: commands_3dm.hpp:2061
Definition: commands_3dm.hpp:2720
Type
Definition: commands_3dm.hpp:2783
Definition: commands_3dm.hpp:2244
Type
Definition: commands_3dm.hpp:2967
Definition: commands_3dm.hpp:996
Represents an index ranging from 0..N excluding N.
Definition: index.hpp:28
@ MESSAGE
Output a data packet. See MessageParameters.
Type
Definition: commands_3dm.hpp:2834
Definition: commands_3dm.hpp:2575
AssistedFixOption
Definition: commands_3dm.hpp:1678
Definition: commands_3dm.hpp:2933
Definition: commands_3dm.hpp:2286
Definition: commands_3dm.hpp:4181
Definition: commands_3dm.hpp:3502
Definition: commands_3dm.hpp:2681
Definition: commands_3dm.hpp:3101
Definition: commands_3dm.hpp:2886
Definition: commands_3dm.hpp:2530
Action
Definition: commands_3dm.hpp:1266
Definition: commands_3dm.hpp:3066
Definition: commands_3dm.hpp:1552
Definition: commands_3dm.hpp:1183
Definition: commands_3dm.hpp:1430
Definition: commands_3dm.hpp:3146
Definition: commands_3dm.hpp:1765
Definition: commands_3dm.hpp:4086
Definition: commands_3dm.hpp:2329
Definition: commands_3dm.hpp:796
Definition: commands_3dm.hpp:2605
Definition: commands_3dm.hpp:1554
Definition: commands_3dm.hpp:2762
Definition: commands_3dm.hpp:1676
Definition: commands_3dm.hpp:2642
Definition: commands_3dm.hpp:3911
Definition: commands_3dm.hpp:4050
Definition: commands_3dm.hpp:3336
Feature
Definition: commands_3dm.hpp:2051
Definition: commands_3dm.hpp:1802
Definition: commands_3dm.hpp:2954
Definition: commands_3dm.hpp:3873
ConstellationId
Definition: commands_3dm.hpp:1420
Definition: commands_3dm.hpp:4140
Definition: commands_3dm.hpp:1264
Definition: commands_3dm.hpp:1454
TalkerID
Definition: commands_3dm.hpp:161
Definition: commands_3dm.hpp:145
Definition: commands_3dm.hpp:3964
Definition: commands_3dm.hpp:660
Definition: commands_3dm.hpp:4048
Definition: commands_3dm.hpp:304
Definition: commands_3dm.hpp:3389
Definition: commands_3dm.hpp:2931