Go to the documentation of this file.
13 # pragma warning(push)
14 # pragma warning(disable : 4200)
24 namespace fusion_engine {
231 return "Device Lever Arm";
234 return "Device Coarse Orientation";
237 return "GNSS Lever Arm";
240 return "Output Lever Arm";
243 return "Vehicle Details";
246 return "Wheel Config";
249 return "Hardware Tick Config";
252 return "UART1 Baud Rate";
255 return "UART2 Baud Rate";
258 return "UART1 Diagnostic Messages Enabled";
261 return "UART2 Diagnostic Messages Enabled";
264 return "Watchdog Timer Enabled";
267 return "Interface Submessage";
270 return "Unrecognized Configuration";
279 stream <<
to_string(type) <<
" (" << (int)type <<
")";
356 return "Diagnostic Messages Enabled";
359 return "Serial Baud Rate";
362 return "Remote Network Address";
365 return "Network Port";
368 return "Unrecognized Configuration";
378 stream <<
to_string(type) <<
" (" << (int)type <<
")";
409 return "Unrecognized Source";
419 stream <<
to_string(source) <<
" (" << (int)source <<
")";
450 return "Revert To Saved";
453 return "Revert To Default";
465 stream <<
to_string(action) <<
" (" << (int)action <<
")";
515 uint8_t reserved[1] = {0};
548 uint8_t reserved[1] = {0};
574 uint8_t reserved[3] = {0};
620 uint8_t reserved[3] = {0};
678 uint8_t reserved[2] = {0};
731 switch (vehicle_model) {
735 return "DATASPEED_CD4";
739 return "LEXUS_CT200H";
741 return "KIA_SORENTO";
743 return "KIA_SPORTAGE";
749 return "TESLA_MODEL_X";
751 return "TESLA_MODEL_3";
753 return "HYUNDAI_ELANTRA";
755 return "PEUGEOT_206";
761 return "LINCOLN_MKZ";
765 return "UNRECOGNIZED";
775 stream <<
to_string(vehicle_model) <<
" (" << (int)vehicle_model <<
")";
785 uint8_t reserved[10] = {0};
833 switch (wheel_sensor_type) {
844 return "Wheel Speed";
847 return "Vehicle Speed";
850 return "Vehicle Ticks";
864 stream <<
to_string(wheel_sensor_type) <<
" (" << (int)wheel_sensor_type
896 switch (applied_speed_type) {
901 return "Rear Wheels";
904 return "Front Wheels";
907 return "Front and Rear Wheels";
910 return "Vehicle Body";
913 return "Unrecognized";
924 stream <<
to_string(applied_speed_type) <<
" (" << (int)applied_speed_type
951 switch (steering_type) {
953 return "Unknown Steering";
956 return "Front Steering";
959 return "Front and Rear Steering";
962 return "Unrecognized";
973 stream <<
to_string(steering_type) <<
" (" << (int)steering_type <<
")";
1015 uint8_t reserved1[1] = {0};
1072 uint8_t reserved2[2] = {0};
1089 switch (tick_mode) {
1093 return "RISING_EDGE";
1095 return "FALLING_EDGE";
1097 return "UNRECOGNIZED";
1106 stream <<
to_string(tick_mode) <<
" (" << (int)tick_mode <<
")";
1131 switch (tick_direction) {
1135 return "FORWARD_ACTIVE_HIGH";
1137 return "FORWARD_ACTIVE_LOW";
1139 return "UNRECOGNIZED";
1149 stream <<
to_string(tick_direction) <<
" (" << (int)tick_direction <<
")";
1197 uint8_t reserved1[2] = {0};
1243 return "FusionEngine";
1251 return "Unrecognized";
1260 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1308 return "TCP Client";
1310 return "TCP Server";
1312 return "UDP Client";
1314 return "UDP Server";
1320 return "Unrecognized";
1329 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1347 uint8_t reserved[2] = {0};
1359 return !(*
this == other);
1368 stream <<
"[type=" << val.
type <<
", index=" << (int)val.
index <<
"]";
1437 return "P1CALSTATUS";
1447 return "PQTMVERNO_SUB";
1449 return "PQTMVER_SUB";
1453 return "Unrecognized";
1462 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1567 return "INTERVAL_10_MS";
1569 return "INTERVAL_20_MS";
1571 return "INTERVAL_40_MS";
1573 return "INTERVAL_50_MS";
1575 return "INTERVAL_100_MS";
1577 return "INTERVAL_200_MS";
1579 return "INTERVAL_500_MS";
1581 return "INTERVAL_1_S";
1583 return "INTERVAL_2_S";
1585 return "INTERVAL_5_S";
1587 return "INTERVAL_10_S";
1589 return "INTERVAL_30_S";
1591 return "INTERVAL_60_S";
1595 return "Unrecognized";
1604 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1736 uint8_t reserved2[3] = {0};
1817 uint8_t reserved1[2] = {0};
1865 return "CalibrationState";
1869 return "FilterState";
1871 return "UserConfig";
1882 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1907 uint8_t reserved1[2] = {0};
1910 uint8_t reserved2[4] = {0};
1941 uint8_t reserved[2] = {0};
1975 uint8_t reserved[1] = {0};
2023 uint8_t reserved[3] = {0};
2044 # pragma warning(pop)
@ INTERVAL_10_S
Output this message every 10 seconds.
P1_CONSTEXPR_FUNC InterfaceID()=default
@ IMPORT_DATA
ImportDataMessage
static constexpr uint8_t MESSAGE_VERSION
@ INTERVAL_10_MS
Output this message every 10 milliseconds.
uint16_t message_id
The ID of the desired message type (e.g., 10000 for FusionEngine MessageType::POSE messages).
ConfigType
An identifier for the contents of a parameter configuration message.
float wheel_ticks_to_m
The scale factor to convert from wheel encoder ticks to distance (in meters/tick).
@ VEHICLE_TICKS
A single wheel rotational angle, reported as accumulated encoder ticks.
@ BACKWARD
Aligned with vehicle -x axis.
static constexpr MessageType MESSAGE_TYPE
@ ALL
Set/get the configuration for the all I/O interfaces.
A 3-dimensional vector (used for lever arms, etc.).
bool wheel_ticks_signed
true if the reported wheel tick measurements should be interpreted as signed integers,...
@ INTERVAL_5_S
Output this message every 5 seconds.
P1_CONSTEXPR_FUNC InterfaceID(TransportType type, uint8_t index=0)
Identifies an I/O interface.
TransportType type
The interface's transport type.
ProtocolType protocol
The message protocol being configured.
MessageType
Identifiers for the defined output message types.
@ GPS_WEEK_ROLLOVER
Specify a GPS legacy week rollover count override to use when converting all legacy 10-bit GPS week n...
Library portability helper definitions.
Response to a GetConfigMessage request (MessageType::CONFIG_RESPONSE, version 1.0).
InterfaceID output_interface
The output interface to be queried.
@ SAVE
Save all active parameters to persistent storage.
static constexpr uint8_t MESSAGE_VERSION
Response response
The response status (success, error, etc.).
@ MAX_RATE
Alias for MessageRate::ON_CHANGE.
The orientation of a device with respect to the vehicle body axes.
@ DEFAULT
Restore this message's rate back to its default value.
@ ENABLED_GNSS_FREQUENCY_BANDS
A bitmask indicating which GNSS frequency bands are enabled.
uint8_t flags
Flags that describe the entry.
Hardware wheel tick encoder configuration settings.
@ NONE
Wheel/vehicle speed data not available.
@ DEVICE_LEVER_ARM
The location of the device IMU with respect to the vehicle body frame (in meters).
TickMode
The signal edge to use when capturing a wheel tick voltage signal.
ConfigType config_type
The type of configuration parameter contained in this message.
@ FORWARD_ACTIVE_LOW
Assume vehicle is moving forward when direction signal voltage is low, and backward when direction si...
@ REVERT_TO_SAVED
Revert the active configuration to previously saved values.
@ DOWN
Aligned with vehicle -z axis.
static constexpr MessageType MESSAGE_TYPE
@ FILE
A interface that writes to a file.
@ UART1_BAUD
Configure the UART1 serial baud rate (in bits/second).
ConfigurationSource config_source
The source of the parameter value (active, saved, etc.).
static constexpr uint8_t FLAG_REVERT_TO_DEFAULT
Flag to restore the config_type back to its default value.
@ VEHICLE_BODY
Individual vehicle speed to be applied to the system.
@ UART1_OUTPUT_DIAGNOSTICS_MESSAGES
Enable/disable output of diagnostic data on UART1.
static constexpr uint8_t MESSAGE_VERSION
static constexpr MessageType MESSAGE_TYPE
Response to a GetMessageRate request (MessageType::MESSAGE_RATE_RESPONSE, version 1....
SteeringType
Indication of which of the vehicle's wheels are steered.
uint8_t flags
Bitmask of additional flags to modify the command.
@ HARDWARE_TICK_CONFIG
Indicates the mode and direction used when capturing vehicle wheel tick data from a voltage pulse on ...
DataType data_type
The type of data to be exported.
@ INTERVAL_500_MS
Output this message every 500 milliseconds.
uint8_t config_change_data[0]
A pointer to the beginning of the configuration parameter value.
float wheel_update_interval_sec
The nominal rate at which wheel speed measurements will be provided (in seconds).
InterfaceConfigType
An identifier for the contents of a output interface configuration submessage.
DataType data_type
The type of data being imported.
SaveAction
The type configuration save operation to be performed.
Information about the vehicle including model and dimensions.
MessageRate rate
The desired message rate.
@ INTERVAL_60_S
Output this message every 60 seconds.
ConfigurationSource request_source
The source of the parameter value (active, saved, etc.).
ConfigurationSource source
The location of the data to update (active, saved, etc.).
Set the output rate for the requested message types (MessageType::SET_MESSAGE_RATE,...
@ REVERT_TO_DEFAULT
Reset the active and saved configuration to default values.
A submessage header for configuration data associated with the ConfigType::INTERFACE_CONFIG.
uint32_t wheel_tick_max_value
The maximum value (inclusive) before the wheel tick measurement will roll over.
Import data from the host to the device (MessageType::IMPORT_DATA, version 1.0).
@ MESSAGE_RATE_RESPONSE
MessageRateResponse
@ SAVE_CONFIG
SaveConfigMessage
MessageRate configured_rate
The current configuration for this message.
MessageRate
The output rate for a message type on an interface.
static constexpr uint8_t FLAG_ACTIVE_DIFFERS_FROM_SAVED
Flag to indicate the active value for this configuration differs from the value saved to persistent m...
uint8_t config_change_data[0]
A pointer to the beginning of the configuration parameter value.
MessageRate effective_rate
The currently active output rate for this message, factoring in effects of additional configuration s...
TickDirection tick_direction
When direction is TickDirection::OFF, the incoming ticks will be treated as unsigned,...
@ REMOTE_ADDRESS
Configure the network address for a client to connect to.
DataType
Type of data stored on device.
@ INTERFACE_CONFIG
Change a configuration setting for a specified output interface.
@ ACTIVE
Active configuration currently in use by the device.
@ FRONT
Front wheels are steered.
P1_CONSTEXPR_FUNC bool operator!=(const InterfaceID &other) const
uint32_t config_length_bytes
The size of the parameter value, config_change_data (in bytes).
WheelSensorType wheel_sensor_type
The type of vehicle/wheel speed measurements produced by the vehicle.
SaveAction action
The action to performed.
@ TICK_RATE
Individual wheel rotation rates, reported as an encoder tick rate (in ticks/second).
TransportType
Type of I/O interface transport.
The base class for all message payloads.
static constexpr MessageType MESSAGE_TYPE
@ INTERVAL_1_S
Output this message every second.
Query the value of a user configuration parameter (MessageType::GET_CONFIG, version 1....
@ ON_CHANGE
Output this message each time a new value is available.
@ INTERVAL_50_MS
Output this message every 50 milliseconds.
@ INTERVAL_2_S
Output this message every 2 seconds.
@ INTERVAL_100_MS
Output this message every 100 milliseconds.
@ SERIAL
A serial data interface (e.g.
static constexpr uint8_t FLAG_APPLY_AND_SAVE
Flag to immediately save the config after applying this setting.
@ INTERVAL_30_S
Output this message every 30 seconds.
@ OFF
Wheel tick capture disabled.
@ TCP_SERVER
An interface that will communicate with connected clients.
ConfigType config_type
The desired parameter.
ProtocolType protocol
The desired message protocol.
GNSS signal and frequency type definitions.
Get the configured output rate for the he requested message type on the specified interface (MessageT...
Export data from the device (MessageType::EXPORT_DATA, version 1.0).
InterfaceID output_interface
The output interface to configure.
@ FRONT_WHEELS
Front wheel speed data to be applied to the system.
uint8_t index
An identifier for the instance of this transport.
@ UP
Aligned with vehicle +z axis.
static constexpr uint8_t FLAG_ACTIVE_DIFFERS_FROM_SAVED
Flag to indicate the active value for this configuration differs from the value saved to persistent m...
@ FRONT_AND_REAR_WHEELS
Front and rear wheel speed data to be applied to the system.
VehicleModel vehicle_model
TickMode tick_mode
If enabled – tick mode is not TickMode::OFF – the device will accumulate ticks received on the I/O pi...
@ CURRENT
Set/get the configuration for the interface on which the command was received.
float rear_track_width_m
The distance between the two rear wheels (in meters).
@ UART2_BAUD
Configure the UART2 serial baud rate (in bits/second).
P1_CONSTEXPR_FUNC const char * to_string(ConfigType type)
Get a human-friendly string name for the specified ConfigType.
AppliedSpeedType applied_speed_type
The type of vehicle/wheel speed measurements to be applied to the navigation solution.
@ TICKS
Individual wheel rotational angles, reported as accumulated encoder ticks.
static constexpr uint8_t FLAG_INCLUDE_DISABLED_MESSAGES
Flag to apply bulk interval changes to all messages instead of just enabled messages.
ConfigurationSource config_source
The source of the parameter value (active, saved, etc.).
float steering_ratio
Ratio between angle of the steering wheel and the angle of the wheels on the ground.
@ INTERVAL_200_MS
Output this message every 200 milliseconds.
VehicleModel
The make and model of the vehicle.
@ GET_MESSAGE_RATE
GetMessageRate
@ DEVICE_COARSE_ORIENTATION
The orientation of the device IMU with respect to the vehicle body axes.
@ INTERVAL_40_MS
Output this message every 40 milliseconds.
float wheelbase_m
The distance between the front axle and rear axle (in meters).
InterfaceID output_interface
The output interface corresponding with this response.
@ LEFT
Aligned with vehicle +y axis.
ConfigType config_type
The type of parameter to be configured.
Response
Command response status indicators.
float wheel_tick_output_interval_sec
The nominal rate at which wheel tick measurements will be provided (in seconds).
TickDirection
The way to interpret an incoming voltage signal, used to indicate direction of a hardware wheel tick ...
static constexpr MessageType MESSAGE_TYPE
@ OFF
Disable output of this message.
@ EXPORT_DATA
ExportDataMessage
@ VEHICLE_SPEED
A single value indicating the vehicle speed (in meters/second).
@ UDP_SERVER
An interface that will communicate with connected clients.
InterfaceConfigType subtype
The interface setting to get/set/describe.
static constexpr uint8_t MESSAGE_VERSION
Direction z_direction
The direction of the device +z axis relative to the vehicle body axes.
ConfigurationSource source
The source to copy this data from.
ConfigurationSource request_source
The config source to request data from (active, saved, etc.).
static constexpr MessageType MESSAGE_TYPE
An element of a MessageRateResponse message.
static constexpr uint8_t MESSAGE_VERSION
Response response
The response status (success, error, etc.).
NmeaMessageType
Integer ID for NMEA messages.
@ SET_MESSAGE_RATE
SetMessageRate
uint32_t data_length_bytes
Number of bytes to update.
Save or reload configuration settings (MessageType::SAVE_CONFIG, version 1.0).
ProtocolType
The framing protocol of a message.
#define P1_CONSTEXPR_FUNC
Set a user configuration parameter (MessageType::SET_CONFIG, version 1.0).
@ ENABLE_WATCHDOG_TIMER
Enable watchdog timer to restart device after fatal errors.
static constexpr uint8_t MESSAGE_VERSION
ProtocolType protocol
The protocol of the message being returned.
WheelSensorType
The type of vehicle/wheel speed measurements produced by the vehicle.
SteeringType steering_type
Indication of which of the vehicle's wheels are steered.
uint8_t flags
Flags that describe the configuration parameter.
float wheel_ticks_to_m
The scale factor to convert from wheel encoder ticks to distance (in meters/tick).
bool wheel_ticks_always_increase
true if the wheel tick measurements increase by a positive amount when driving forward or backward.
@ GET_CONFIG
GetConfigMessage
static constexpr uint8_t MESSAGE_VERSION
@ FRONT_AND_REAR
Front and rear wheels are steered.
@ OUTPUT_LEVER_ARM
The offset of the desired output location with respect to the vehicle body frame (in meters).
static constexpr uint8_t MESSAGE_VERSION
@ OUTPUT_DIAGNOSTICS_MESSAGES
Enable/disable output of diagnostic data on this interface.
uint8_t optional_submessage_header[0]
When config_type is ConfigType::INTERFACE_CONFIG, a InterfaceConfigSubmessage must be added to the en...
@ SAVED
Settings currently saved to persistent storage.
uint16_t message_id
The ID of the returned message type (e.g., 10000 for FusionEngine MessageType::POSE messages).
@ SET_CONFIG
SetConfigMessage
static constexpr uint8_t FLAG_APPLY_AND_SAVE
Flag to immediately save the config after applying this setting.
@ VEHICLE_DETAILS
Information about the vehicle including model and dimensions.
@ NONE
Speed data not applied to the system.
P1_CONSTEXPR_FUNC bool operator==(const InterfaceID &other) const
std::ostream & operator<<(std::ostream &stream, ConfigType type)
ConfigType stream operator.
@ WHEEL_CONFIG
Information pertaining to wheel speed/rotation measurements when wheel data is transmitted via softwa...
Point One FusionEngine output message common definitions.
uint8_t flags
Bitmask of additional flags to modify the command.
Software vehicle/wheel speed measurement configuration settings.
@ PLATFORM_STORAGE_DATA
PlatformStorageDataMessage
@ WHEEL_SPEED
Individual wheel speeds, reported in meters/second.
uint16_t message_id
The ID of the desired message type (e.g., 10000 for FusionEngine MessageType::POSE messages).
@ FALLING_EDGE
Capture a wheel tick on the falling edge of the incoming pulse.
@ FORWARD_ACTIVE_HIGH
Assume vehicle is moving forward when direction signal voltage is high, and backward when direction s...
static constexpr MessageType MESSAGE_TYPE
uint32_t config_length_bytes
The size of the parameter value, config_change_data (in bytes).
DataVersion data_version
Version of data contents.
ConfigurationSource
The type of a device's configuration settings.
@ TCP_CLIENT
An interface that will try to connect to a remote TCP server.
@ INTERVAL_20_MS
Output this message every 20 milliseconds.
@ REAR_WHEELS
Rear wheel speed data to be applied to the system (recommended).
static constexpr MessageType MESSAGE_TYPE
@ GNSS_LEVER_ARM
The location of the GNSS antenna with respect to the vehicle body frame (in meters).
static constexpr MessageType MESSAGE_TYPE
float front_track_width_m
The distance between the two front wheels (in meters).
@ RIGHT
Aligned with vehicle -y axis.
uint16_t num_rates
The number of rates reported by this message.
@ BAUD_RATE
Configure the serial baud rate (in bits/second).
static constexpr uint8_t MESSAGE_VERSION
@ ENABLED_GNSS_SYSTEMS
A bitmask indicating which GNSS constellations are enabled.
A struct representing the version of a data object.
@ OFF
Wheel tick direction not provided.
@ LEAP_SECOND
Specify a UTC leap second count override value to use for all UTC time conversions.
@ RISING_EDGE
Capture a wheel tick on the rising edge of the incoming pulse.
Direction x_direction
The direction of the device +x axis relative to the vehicle body axes.
@ PORT
Configure the network port.
@ UART2_OUTPUT_DIAGNOSTICS_MESSAGES
Enable/disable output of diagnostic data on UART2.
@ ALL
This is used for requesting the configuration for all protocols.
@ UDP_CLIENT
An interface that will try to connect to a remote UDP server.
constexpr uint16_t ALL_MESSAGES_ID
Setting message_id to this value acts as a wild card.
AppliedSpeedType
The type of vehicle/wheel speed measurements to be applied.
uint8_t config_data[0]
A pointer to the beginning of the configuration parameter value if setting/describing.
@ UNKNOWN
Steered wheels unknown.
@ FORWARD
Aligned with vehicle +x axis.
@ CONFIG_RESPONSE
ConfigResponseMessage