12 namespace fusion_engine {
42 static constexpr uint8_t MESSAGE_VERSION = 2;
43 static constexpr int16_t INVALID_UNDULATION = INT16_MIN;
46 static constexpr uint8_t FLAG_STATIONARY = 0x01;
81 int16_t undulation_cm = INVALID_UNDULATION;
118 double lla_deg[3] = {NAN, NAN, NAN};
124 float position_std_enu_m[3] = {NAN, NAN, NAN};
138 double ypr_deg[3] = {NAN, NAN, NAN};
143 float ypr_std_deg[3] = {NAN, NAN, NAN};
149 double velocity_body_mps[3] = {NAN, NAN, NAN};
155 float velocity_std_body_mps[3] = {NAN, NAN, NAN};
158 float aggregate_protection_level_m = NAN;
160 float horizontal_protection_level_m = NAN;
162 float vertical_protection_level_m = NAN;
172 static constexpr uint8_t MESSAGE_VERSION = 0;
182 float position_std_body_m[3] = {NAN, NAN, NAN};
188 double position_cov_enu_m2[9] = {NAN};
194 double attitude_quaternion[4] = {NAN, NAN, NAN, NAN};
199 double velocity_enu_mps[3] = {NAN, NAN, NAN};
205 float velocity_std_enu_mps[3] = {NAN, NAN, NAN};
221 static constexpr uint8_t MESSAGE_VERSION = 1;
223 static constexpr uint16_t INVALID_LEAP_SECOND = 0xFF;
224 static constexpr uint16_t INVALID_AGE = 0xFFFF;
225 static constexpr uint16_t INVALID_DISTANCE = 0xFFFF;
226 static constexpr uint32_t INVALID_REFERENCE_STATION = 0xFFFFFFFF;
240 uint8_t leap_second = INVALID_LEAP_SECOND;
253 uint16_t corrections_age = INVALID_AGE;
262 uint16_t baseline_distance = INVALID_DISTANCE;
268 uint32_t reference_station_id = INVALID_REFERENCE_STATION;
280 float gps_time_std_sec = NAN;
299 static constexpr uint8_t MESSAGE_VERSION = 0;
308 uint16_t num_satellites = 0;
310 uint8_t reserved[2] = {0};
327 static constexpr uint8_t SATELLITE_USED = 0x01;
330 static constexpr int16_t INVALID_CN0 = 0;
359 uint8_t cn0 = INVALID_CN0;
362 float azimuth_deg = NAN;
365 float elevation_deg = NAN;
391 return "IMU Mounting Angles";
395 return "Unrecognized";
403 stream <<
to_string(val) <<
" (" << (int)val <<
")";
415 static constexpr uint8_t MESSAGE_VERSION = 1;
428 uint8_t reserved1[3] = {0};
431 float ypr_deg[3] = {NAN, NAN, NAN};
437 float ypr_std_dev_deg[3] = {NAN, NAN, NAN};
440 float travel_distance_m = 0.0;
442 uint8_t reserved2[24] = {0};
455 uint8_t state_verified{0};
457 uint8_t reserved3[3] = {0};
463 uint8_t gyro_bias_percent_complete = 0;
469 uint8_t accel_bias_percent_complete = 0;
475 uint8_t mounting_angle_percent_complete = 0;
477 uint8_t reserved4[5] = {0};
490 float min_travel_distance_m = NAN;
496 float mounting_angle_max_std_dev_deg[3] = {NAN, NAN, NAN};
515 static constexpr uint8_t MESSAGE_VERSION = 1;
517 static constexpr uint32_t INVALID_REFERENCE_STATION = 0xFFFFFFFF;
528 uint8_t reserved[3] = {0};
531 uint32_t reference_station_id = INVALID_REFERENCE_STATION;
540 double relative_position_enu_m[3] = {NAN, NAN, NAN};
550 float position_std_enu_m[3] = {NAN, NAN, NAN};