12 namespace fusion_engine {
42 static constexpr uint8_t MESSAGE_VERSION = 1;
43 static constexpr int16_t INVALID_UNDULATION = INT16_MIN;
73 int16_t undulation_cm = INVALID_UNDULATION;
110 double lla_deg[3] = {NAN, NAN, NAN};
116 float position_std_enu_m[3] = {NAN, NAN, NAN};
130 double ypr_deg[3] = {NAN, NAN, NAN};
135 float ypr_std_deg[3] = {NAN, NAN, NAN};
141 double velocity_body_mps[3] = {NAN, NAN, NAN};
147 float velocity_std_body_mps[3] = {NAN, NAN, NAN};
150 float aggregate_protection_level_m = NAN;
152 float horizontal_protection_level_m = NAN;
154 float vertical_protection_level_m = NAN;
164 static constexpr uint8_t MESSAGE_VERSION = 0;
174 float position_std_body_m[3] = {NAN, NAN, NAN};
180 double position_cov_enu_m2[9] = {NAN};
186 double attitude_quaternion[4] = {NAN, NAN, NAN, NAN};
191 double velocity_enu_mps[3] = {NAN, NAN, NAN};
197 float velocity_std_enu_mps[3] = {NAN, NAN, NAN};
213 static constexpr uint8_t MESSAGE_VERSION = 1;
215 static constexpr uint16_t INVALID_LEAP_SECOND = 0xFF;
216 static constexpr uint16_t INVALID_AGE = 0xFFFF;
217 static constexpr uint16_t INVALID_DISTANCE = 0xFFFF;
218 static constexpr uint32_t INVALID_REFERENCE_STATION = 0xFFFFFFFF;
232 uint8_t leap_second = INVALID_LEAP_SECOND;
245 uint16_t corrections_age = INVALID_AGE;
254 uint16_t baseline_distance = INVALID_DISTANCE;
260 uint32_t reference_station_id = INVALID_REFERENCE_STATION;
272 float gps_time_std_sec = NAN;
291 static constexpr uint8_t MESSAGE_VERSION = 0;
300 uint16_t num_satellites = 0;
302 uint8_t reserved[2] = {0};
319 static constexpr uint8_t SATELLITE_USED = 0x01;
322 static constexpr int16_t INVALID_CN0 = 0;
351 uint8_t cn0 = INVALID_CN0;
354 float azimuth_deg = NAN;
357 float elevation_deg = NAN;
383 return "IMU Mounting Angles";
387 return "Unrecognized";
395 stream <<
to_string(val) <<
" (" << (int)val <<
")";
407 static constexpr uint8_t MESSAGE_VERSION = 1;
420 uint8_t reserved1[3] = {0};
423 float ypr_deg[3] = {NAN, NAN, NAN};
429 float ypr_std_dev_deg[3] = {NAN, NAN, NAN};
432 float travel_distance_m = 0.0;
434 uint8_t reserved2[24] = {0};
447 uint8_t state_verified{0};
449 uint8_t reserved3[3] = {0};
455 uint8_t gyro_bias_percent_complete = 0;
461 uint8_t accel_bias_percent_complete = 0;
467 uint8_t mounting_angle_percent_complete = 0;
469 uint8_t reserved4[5] = {0};
482 float min_travel_distance_m = NAN;
488 float mounting_angle_max_std_dev_deg[3] = {NAN, NAN, NAN};
507 static constexpr uint8_t MESSAGE_VERSION = 1;
509 static constexpr uint32_t INVALID_REFERENCE_STATION = 0xFFFFFFFF;
520 uint8_t reserved[3] = {0};
523 uint32_t reference_station_id = INVALID_REFERENCE_STATION;
532 double relative_position_enu_m[3] = {NAN, NAN, NAN};
542 float position_std_enu_m[3] = {NAN, NAN, NAN};