defs.h File
Point One FusionEngine output message common definitions. More...
Included Headers
#include <cmath>
#include <cstdint>
#include <string>
#include "point_one/fusion_engine/common/portability.h"
#include "point_one/fusion_engine/messages/signal_defs.h"
Namespaces Index
| namespace | point_one |
|
GNSS signal and frequency type definitions. More... | |
| namespace | fusion_engine |
| namespace | messages |
Classes Index
| struct | MessageHeader |
|
The header present at the beginning of every message. More... | |
| struct | MessagePayload |
|
The base class for all message payloads. More... | |
| struct | Timestamp |
|
Generic timestamp representation. More... | |
Description
Point One FusionEngine output message common definitions.
File Listing
The file content with the documentation metadata removed is:
12#include "point_one/fusion_engine/common/portability.h"
13#include "point_one/fusion_engine/messages/signal_defs.h"
15namespace point_one {
34enum class MessageType : uint16_t {
35 INVALID = 0, ///< Invalid message type
38 POSE = 10000, ///< @ref PoseMessage
39 GNSS_INFO = 10001, ///< @ref GNSSInfoMessage
40 GNSS_SATELLITE = 10002, ///< @ref GNSSSatelliteMessage
41 POSE_AUX = 10003, ///< @ref PoseAuxMessage
42 CALIBRATION_STATUS = 10004, ///< @ref CalibrationStatusMessage
43 RELATIVE_ENU_POSITION = 10005, ///< @ref RelativeENUPositionMessage
44 GNSS_SIGNALS = 10006, ///< @ref GNSSSignalsMessage
47 SYSTEM_STATUS = 10500, ///< @ref SystemStatusMessage
50 IMU_OUTPUT = 11000, ///< @ref IMUOutput
51 DEPRECATED_RAW_HEADING_OUTPUT = 11001,
52 RAW_IMU_OUTPUT = 11002, ///< @ref RawIMUOutput
53 DEPRECATED_HEADING_OUTPUT = 11003,
54 IMU_INPUT = 11004, ///< @ref IMUInput
55 GNSS_ATTITUDE_OUTPUT = 11005, ///< @ref GNSSAttitudeOutput
56 RAW_GNSS_ATTITUDE_OUTPUT = 11006, ///< @ref RawGNSSAttitudeOutput
57 EXTERNAL_POSE_INPUT = 11007, ///< @ref ExternalPoseInput
65 WHEEL_TICK_INPUT = 11103, ///< @ref WheelTickInput
66 VEHICLE_TICK_INPUT = 11104, ///< @ref VehicleTickInput
67 WHEEL_SPEED_INPUT = 11105, ///< @ref WheelSpeedInput
68 VEHICLE_SPEED_INPUT = 11106, ///< @ref VehicleSpeedInput
70 RAW_WHEEL_TICK_OUTPUT = 11123, ///< @ref RawWheelTickOutput
71 RAW_VEHICLE_TICK_OUTPUT = 11124, ///< @ref RawVehicleTickOutput
72 RAW_WHEEL_SPEED_OUTPUT = 11125, ///< @ref RawWheelSpeedOutput
73 RAW_VEHICLE_SPEED_OUTPUT = 11126, ///< @ref RawVehicleSpeedOutput
75 WHEEL_SPEED_OUTPUT = 11135, ///< @ref WheelSpeedOutput
76 VEHICLE_SPEED_OUTPUT = 11136, ///< @ref VehicleSpeedOutput
79 ROS_POSE = 12000, ///< @ref ros::PoseMessage
80 ROS_GPS_FIX = 12010, ///< @ref ros::GPSFixMessage
81 ROS_IMU = 12011, ///< @ref ros::IMUMessage
84 COMMAND_RESPONSE = 13000, ///< @ref CommandResponseMessage
85 MESSAGE_REQUEST = 13001, ///< @ref MessageRequest
86 RESET_REQUEST = 13002, ///< @ref ResetRequest
87 VERSION_INFO = 13003, ///< @ref VersionInfoMessage
88 EVENT_NOTIFICATION = 13004, ///< @ref EventNotificationMessage
89 SHUTDOWN_REQUEST = 13005, ///< @ref ShutdownRequest
90 FAULT_CONTROL = 13006, ///< @ref FaultControlMessage
91 DEVICE_ID = 13007, ///< @ref DeviceIDMessage
92 STARTUP_REQUEST = 13008, ///< @ref StartupRequest
94 SET_CONFIG = 13100, ///< @ref SetConfigMessage
95 GET_CONFIG = 13101, ///< @ref GetConfigMessage
96 SAVE_CONFIG = 13102, ///< @ref SaveConfigMessage
97 CONFIG_RESPONSE = 13103, ///< @ref ConfigResponseMessage
99 IMPORT_DATA = 13110, ///< @ref ImportDataMessage
100 EXPORT_DATA = 13111, ///< @ref ExportDataMessage
101 PLATFORM_STORAGE_DATA = 13113, ///< @ref PlatformStorageDataMessage
102 INPUT_DATA_WRAPPER = 13120, ///< @ref InputDataWrapperMessage
104 SET_MESSAGE_RATE = 13220, ///< @ref SetMessageRate
105 GET_MESSAGE_RATE = 13221, ///< @ref GetMessageRate
106 MESSAGE_RATE_RESPONSE = 13222, ///< @ref MessageRateResponse
107 SUPPORTED_IO_INTERFACES = 13223, ///< @ref SupportedIOInterfacesMessage
109 LBAND_FRAME = 14000, ///< @ref LBandFrameMessage
111 STA5635_COMMAND = 14100, ///< @ref STA5635Command
112 STA5635_COMMAND_RESPONSE = 14101, ///< @ref STA5635CommandResponse
113 STA5635_IQ_DATA = 14102, ///< @ref STA5635IQData
116 MAX_VALUE = STA5635_IQ_DATA,
127P1_CONSTEXPR_FUNC const char* to_string(MessageType type) {
129 case MessageType::INVALID:
133 case MessageType::POSE:
136 case MessageType::GNSS_INFO:
139 case MessageType::GNSS_SATELLITE:
142 case MessageType::POSE_AUX:
145 case MessageType::CALIBRATION_STATUS:
148 case MessageType::RELATIVE_ENU_POSITION:
151 case MessageType::GNSS_SIGNALS:
155 case MessageType::SYSTEM_STATUS:
159 case MessageType::IMU_OUTPUT:
165 case MessageType::RAW_IMU_OUTPUT:
168 case MessageType::DEPRECATED_HEADING_OUTPUT:
171 case MessageType::IMU_INPUT:
174 case MessageType::GNSS_ATTITUDE_OUTPUT:
177 case MessageType::RAW_GNSS_ATTITUDE_OUTPUT:
180 case MessageType::EXTERNAL_POSE_INPUT:
189 case MessageType::WHEEL_TICK_INPUT:
192 case MessageType::VEHICLE_TICK_INPUT:
195 case MessageType::WHEEL_SPEED_INPUT:
198 case MessageType::VEHICLE_SPEED_INPUT:
201 case MessageType::RAW_WHEEL_TICK_OUTPUT:
204 case MessageType::RAW_VEHICLE_TICK_OUTPUT:
207 case MessageType::RAW_WHEEL_SPEED_OUTPUT:
210 case MessageType::RAW_VEHICLE_SPEED_OUTPUT:
213 case MessageType::WHEEL_SPEED_OUTPUT:
216 case MessageType::VEHICLE_SPEED_OUTPUT:
220 case MessageType::ROS_POSE:
223 case MessageType::ROS_GPS_FIX:
226 case MessageType::ROS_IMU:
230 case MessageType::COMMAND_RESPONSE:
233 case MessageType::MESSAGE_REQUEST:
236 case MessageType::RESET_REQUEST:
239 case MessageType::VERSION_INFO:
242 case MessageType::EVENT_NOTIFICATION:
245 case MessageType::SHUTDOWN_REQUEST:
248 case MessageType::STARTUP_REQUEST:
251 case MessageType::DEVICE_ID:
254 case MessageType::FAULT_CONTROL:
257 case MessageType::SET_CONFIG:
260 case MessageType::GET_CONFIG:
263 case MessageType::SAVE_CONFIG:
266 case MessageType::CONFIG_RESPONSE:
269 case MessageType::SET_MESSAGE_RATE:
272 case MessageType::GET_MESSAGE_RATE:
275 case MessageType::SUPPORTED_IO_INTERFACES:
278 case MessageType::MESSAGE_RATE_RESPONSE:
281 case MessageType::IMPORT_DATA:
284 case MessageType::EXPORT_DATA:
287 case MessageType::PLATFORM_STORAGE_DATA:
290 case MessageType::INPUT_DATA_WRAPPER:
293 case MessageType::LBAND_FRAME:
296 case MessageType::STA5635_COMMAND:
299 case MessageType::STA5635_COMMAND_RESPONSE:
302 case MessageType::STA5635_IQ_DATA:
312inline p1_ostream& operator<<(p1_ostream& stream, MessageType type) {
327P1_CONSTEXPR_FUNC bool IsCommand(MessageType message_type) {
329 case MessageType::MESSAGE_REQUEST:
330 case MessageType::RESET_REQUEST:
331 case MessageType::STARTUP_REQUEST:
332 case MessageType::SHUTDOWN_REQUEST:
333 case MessageType::FAULT_CONTROL:
334 case MessageType::SET_CONFIG:
335 case MessageType::GET_CONFIG:
336 case MessageType::SAVE_CONFIG:
337 case MessageType::IMPORT_DATA:
338 case MessageType::EXPORT_DATA:
339 case MessageType::SET_MESSAGE_RATE:
340 case MessageType::GET_MESSAGE_RATE:
341 case MessageType::STA5635_COMMAND:
344 case MessageType::INVALID:
345 case MessageType::POSE:
346 case MessageType::GNSS_INFO:
347 case MessageType::GNSS_SATELLITE:
348 case MessageType::POSE_AUX:
349 case MessageType::CALIBRATION_STATUS:
350 case MessageType::RELATIVE_ENU_POSITION:
351 case MessageType::GNSS_SIGNALS:
352 case MessageType::SYSTEM_STATUS:
353 case MessageType::IMU_OUTPUT:
355 case MessageType::RAW_IMU_OUTPUT:
356 case MessageType::DEPRECATED_HEADING_OUTPUT:
357 case MessageType::IMU_INPUT:
358 case MessageType::GNSS_ATTITUDE_OUTPUT:
359 case MessageType::RAW_GNSS_ATTITUDE_OUTPUT:
360 case MessageType::EXTERNAL_POSE_INPUT:
363 case MessageType::WHEEL_TICK_INPUT:
364 case MessageType::VEHICLE_TICK_INPUT:
365 case MessageType::WHEEL_SPEED_INPUT:
366 case MessageType::VEHICLE_SPEED_INPUT:
367 case MessageType::RAW_WHEEL_TICK_OUTPUT:
368 case MessageType::RAW_VEHICLE_TICK_OUTPUT:
369 case MessageType::RAW_WHEEL_SPEED_OUTPUT:
370 case MessageType::RAW_VEHICLE_SPEED_OUTPUT:
371 case MessageType::WHEEL_SPEED_OUTPUT:
372 case MessageType::VEHICLE_SPEED_OUTPUT:
373 case MessageType::ROS_POSE:
374 case MessageType::ROS_GPS_FIX:
375 case MessageType::ROS_IMU:
376 case MessageType::COMMAND_RESPONSE:
377 case MessageType::VERSION_INFO:
378 case MessageType::EVENT_NOTIFICATION:
379 case MessageType::DEVICE_ID:
380 case MessageType::CONFIG_RESPONSE:
381 case MessageType::PLATFORM_STORAGE_DATA:
382 case MessageType::INPUT_DATA_WRAPPER:
383 case MessageType::MESSAGE_RATE_RESPONSE:
384 case MessageType::SUPPORTED_IO_INTERFACES:
385 case MessageType::LBAND_FRAME:
386 case MessageType::STA5635_COMMAND_RESPONSE:
387 case MessageType::STA5635_IQ_DATA:
403P1_CONSTEXPR_FUNC bool IsResponse(MessageType message_type) {
405 case MessageType::COMMAND_RESPONSE:
406 case MessageType::CONFIG_RESPONSE:
407 case MessageType::MESSAGE_RATE_RESPONSE:
408 case MessageType::STA5635_COMMAND_RESPONSE:
417 OK = 0,
423 UNSUPPORTED_CMD_VERSION = 1,
428 UNSUPPORTED_FEATURE = 2,
433 VALUE_ERROR = 3,
438 INSUFFICIENT_SPACE = 4,
442 EXECUTION_FAILURE = 5,
447 INCONSISTENT_PAYLOAD_LENGTH = 6,
451 DATA_CORRUPTED = 7,
455 NO_DATA_STORED = 8,
459 UNAVAILABLE = 9,
464 UNSUPPORTED_INTERFACE = 10,
474P1_CONSTEXPR_FUNC const char* to_string(Response val) {
475 switch (val) {
476 case Response::OK:
478 case Response::UNSUPPORTED_CMD_VERSION:
480 case Response::UNSUPPORTED_FEATURE:
482 case Response::VALUE_ERROR:
484 case Response::INSUFFICIENT_SPACE:
486 case Response::EXECUTION_FAILURE:
488 case Response::INCONSISTENT_PAYLOAD_LENGTH:
490 case Response::DATA_CORRUPTED:
492 case Response::NO_DATA_STORED:
494 case Response::UNAVAILABLE:
496 case Response::UNSUPPORTED_INTERFACE:
505inline p1_ostream& operator<<(p1_ostream& stream, Response val) {
513enum class SolutionType : uint8_t {
515 Invalid = 0,
517 AutonomousGPS = 1,
522 DGPS = 2,
527 RTKFixed = 4,
529 RTKFloat = 5,
531 Integrate = 6,
533 Visual = 9,
537 PPP = 10,
549P1_CONSTEXPR_FUNC const char* to_string(SolutionType type) {
551 case SolutionType::Invalid:
554 case SolutionType::AutonomousGPS:
557 case SolutionType::DGPS:
560 case SolutionType::RTKFixed:
563 case SolutionType::RTKFloat:
566 case SolutionType::Integrate:
569 case SolutionType::Visual:
572 case SolutionType::PPP:
582inline p1_ostream& operator<<(p1_ostream& stream, SolutionType type) {
596struct P1_ALIGNAS(4) Timestamp {
616struct P1_ALIGNAS(4) MessageHeader {
617 static constexpr uint8_t SYNC0 = 0x2E; // '.'
618 static constexpr uint8_t SYNC1 = 0x31; // '1'
620 static constexpr uint32_t INVALID_SOURCE_ID = 0xFFFFFFFF;
625 static const size_t MAX_MESSAGE_SIZE_BYTES = (1 << 24);
628 uint8_t sync[2] = {SYNC0, SYNC1};
640 uint32_t crc = 0;
643 uint8_t protocol_version = 2;
648 uint8_t message_version = 0;
651 MessageType message_type = MessageType::INVALID;
654 uint32_t sequence_number = 0;
657 uint32_t payload_size_bytes = 0;
660 uint32_t source_identifier = INVALID_SOURCE_ID;
673P1_CONSTEXPR_FUNC bool IsCommand(const MessageHeader& header) {
687P1_CONSTEXPR_FUNC bool IsResponse(const MessageHeader& header) {
688 return IsResponse(header.message_type);
695struct MessagePayload {
Generated via doxygen2docusaurus 2.2.0 by Doxygen 1.9.8.