Go to the documentation of this file.
13 # pragma warning(push)
14 # pragma warning(disable : 4200)
23 namespace fusion_engine {
144 return "Device Lever Arm";
147 return "Device Coarse Orientation";
150 return "GNSS Lever Arm";
153 return "Output Lever Arm";
156 return "Vehicle Details";
159 return "Wheel Config";
162 return "Hardware Tick Config";
165 return "UART1 Baud Rate";
168 return "UART2 Baud Rate";
171 return "UART1 Diagnostic Messages Enabled";
174 return "UART2 Diagnostic Messages Enabled";
177 return "Watchdog Timer Enabled";
180 return "Unrecognized Configuration";
189 stream <<
to_string(type) <<
" (" << (int)type <<
")";
220 return "Unrecognized Source";
230 stream <<
to_string(source) <<
" (" << (int)source <<
")";
261 return "Revert To Saved";
264 return "Revert To Default";
276 stream <<
to_string(action) <<
" (" << (int)action <<
")";
315 uint8_t reserved[1] = {0};
348 uint8_t reserved[1] = {0};
367 uint8_t reserved[3] = {0};
413 uint8_t reserved[3] = {0};
471 uint8_t reserved[2] = {0};
524 switch (vehicle_model) {
528 return "DATASPEED_CD4";
532 return "LEXUS_CT200H";
534 return "KIA_SORENTO";
536 return "KIA_SPORTAGE";
542 return "TESLA_MODEL_X";
544 return "TESLA_MODEL_3";
546 return "HYUNDAI_ELANTRA";
548 return "PEUGEOT_206";
554 return "LINCOLN_MKZ";
558 return "UNRECOGNIZED";
568 stream <<
to_string(vehicle_model) <<
" (" << (int)vehicle_model <<
")";
578 uint8_t reserved[10] = {0};
626 switch (wheel_sensor_type) {
637 return "Wheel Speed";
640 return "Vehicle Speed";
643 return "Vehicle Ticks";
657 stream <<
to_string(wheel_sensor_type) <<
" (" << (int)wheel_sensor_type
689 switch (applied_speed_type) {
694 return "Rear Wheels";
697 return "Front Wheels";
700 return "Front and Rear Wheels";
703 return "Vehicle Body";
706 return "Unrecognized";
717 stream <<
to_string(applied_speed_type) <<
" (" << (int)applied_speed_type
744 switch (steering_type) {
746 return "Unknown Steering";
749 return "Front Steering";
752 return "Front and Rear Steering";
755 return "Unrecognized";
766 stream <<
to_string(steering_type) <<
" (" << (int)steering_type <<
")";
795 uint8_t reserved1[1] = {0};
852 uint8_t reserved2[2] = {0};
873 return "RISING_EDGE";
875 return "FALLING_EDGE";
877 return "UNRECOGNIZED";
886 stream <<
to_string(tick_mode) <<
" (" << (int)tick_mode <<
")";
911 switch (tick_direction) {
915 return "FORWARD_ACTIVE_HIGH";
917 return "FORWARD_ACTIVE_LOW";
919 return "UNRECOGNIZED";
929 stream <<
to_string(tick_direction) <<
" (" << (int)tick_direction <<
")";
962 uint8_t reserved1[2] = {0};
1008 return "FusionEngine";
1016 return "Unrecognized";
1025 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1067 return "TCP Client";
1069 return "TCP Server";
1071 return "UDP Client";
1073 return "UDP Server";
1079 return "Unrecognized";
1088 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1106 uint8_t reserved[2] = {0};
1118 return !(*
this == other);
1127 stream <<
"[type=" << val.
type <<
", index=" << (int)val.
index <<
"]";
1196 return "P1CALSTATUS";
1206 return "PQTMVERNO_SUB";
1208 return "PQTMVER_SUB";
1212 return "Unrecognized";
1221 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1326 return "INTERVAL_10_MS";
1328 return "INTERVAL_20_MS";
1330 return "INTERVAL_40_MS";
1332 return "INTERVAL_50_MS";
1334 return "INTERVAL_100_MS";
1336 return "INTERVAL_200_MS";
1338 return "INTERVAL_500_MS";
1340 return "INTERVAL_1_S";
1342 return "INTERVAL_2_S";
1344 return "INTERVAL_5_S";
1346 return "INTERVAL_10_S";
1348 return "INTERVAL_30_S";
1350 return "INTERVAL_60_S";
1354 return "Unrecognized";
1363 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1495 uint8_t reserved2[3] = {0};
1575 uint8_t reserved1[2] = {0};
1623 return "CalibrationState";
1627 return "FilterState";
1629 return "UserConfig";
1640 stream <<
to_string(val) <<
" (" << (int)val <<
")";
1665 uint8_t reserved1[2] = {0};
1668 uint8_t reserved2[4] = {0};
1699 uint8_t reserved[2] = {0};
1733 uint8_t reserved[1] = {0};
1755 # pragma warning(pop)
@ INTERVAL_10_S
Output this message every 10 seconds.
@ 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.
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.
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.
uint8_t flags
Flags that describe the entry.
Hardware wheel 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
@ UART1_BAUD
Configure the UART1 serial baud rate (in bits/second).
ConfigurationSource config_source
The source of the parameter value (active, saved, etc.).
@ VEHICLE_BODY
Individual vehicle speed to be applied to the system.
@ UART1_OUTPUT_DIAGNOSTICS_MESSAGES
Force output the diagnostic message set 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).
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.
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,...
DataType
Type of data stored on device.
@ ACTIVE
Active configuration currently in use by the device.
@ FRONT
Front wheels are steered.
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.
static constexpr uint8_t FLAG_APPLY_AND_SAVE
Flag to immediately save the config after applying this setting.
bool operator==(const InterfaceID &other) const
@ INTERVAL_30_S
Output this message every 30 seconds.
@ OFF
Wheel tick capture disabled.
ConfigType config_type
The desired parameter.
ProtocolType protocol
The desired message protocol.
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.
bool operator!=(const InterfaceID &other) const
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).
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).
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.
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
@ 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.
std::ostream & operator<<(std::ostream &stream, ConfigType type)
ConfigType stream operator.
@ WHEEL_CONFIG
Information pertaining to wheel speed/rotation measurements.
Point One FusionEngine output message common definitions.
uint8_t flags
Bitmask of additional flags to modify the command.
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.
const char * to_string(ConfigType type)
Get a human-friendly string name for the specified ConfigType.
@ 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.
static constexpr uint8_t MESSAGE_VERSION
A struct representing the version of a data object.
@ OFF
Wheel tick direction not provided.
@ 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.
@ UART2_OUTPUT_DIAGNOSTICS_MESSAGES
Force output the diagnostic message set on UART2.
InterfaceID(TransportType type, uint8_t index=0)
@ ALL
This is used for requesting the configuration for all protocols.
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.
@ UNKNOWN
Steered wheels unknown.
@ FORWARD
Aligned with vehicle +x axis.
@ CONFIG_RESPONSE
ConfigResponseMessage