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;
85 int16_t undulation_cm = INVALID_UNDULATION;
122 double lla_deg[3] = {NAN, NAN, NAN};
128 float position_std_enu_m[3] = {NAN, NAN, NAN};
142 double ypr_deg[3] = {NAN, NAN, NAN};
147 float ypr_std_deg[3] = {NAN, NAN, NAN};
153 double velocity_body_mps[3] = {NAN, NAN, NAN};
159 float velocity_std_body_mps[3] = {NAN, NAN, NAN};
162 float aggregate_protection_level_m = NAN;
164 float horizontal_protection_level_m = NAN;
166 float vertical_protection_level_m = NAN;
176 static constexpr uint8_t MESSAGE_VERSION = 0;
186 float position_std_body_m[3] = {NAN, NAN, NAN};
192 double position_cov_enu_m2[9] = {NAN};
198 double attitude_quaternion[4] = {NAN, NAN, NAN, NAN};
203 double velocity_enu_mps[3] = {NAN, NAN, NAN};
209 float velocity_std_enu_mps[3] = {NAN, NAN, NAN};
225 static constexpr uint8_t MESSAGE_VERSION = 1;
227 static constexpr uint8_t INVALID_LEAP_SECOND = 0xFF;
228 static constexpr uint16_t INVALID_AGE = 0xFFFF;
229 static constexpr uint16_t INVALID_DISTANCE = 0xFFFF;
230 static constexpr uint32_t INVALID_REFERENCE_STATION = 0xFFFFFFFF;
244 uint8_t leap_second = INVALID_LEAP_SECOND;
257 uint16_t corrections_age = INVALID_AGE;
266 uint16_t baseline_distance = INVALID_DISTANCE;
272 uint32_t reference_station_id = INVALID_REFERENCE_STATION;
284 float gps_time_std_sec = NAN;
303 static constexpr uint8_t MESSAGE_VERSION = 0;
312 uint16_t num_satellites = 0;
314 uint8_t reserved[2] = {0};
331 static constexpr uint8_t SATELLITE_USED = 0x01;
334 static constexpr int16_t INVALID_CN0 = 0;
363 uint8_t cn0 = INVALID_CN0;
366 float azimuth_deg = NAN;
369 float elevation_deg = NAN;
395 return "IMU Mounting Angles";
399 return "Unrecognized";
406 stream <<
to_string(val) <<
" (" << (int)val <<
")";
418 static constexpr uint8_t MESSAGE_VERSION = 1;
431 uint8_t reserved1[3] = {0};
434 float ypr_deg[3] = {NAN, NAN, NAN};
440 float ypr_std_dev_deg[3] = {NAN, NAN, NAN};
443 float travel_distance_m = 0.0;
445 uint8_t reserved2[24] = {0};
458 uint8_t state_verified{0};
460 uint8_t reserved3[3] = {0};
466 uint8_t gyro_bias_percent_complete = 0;
472 uint8_t accel_bias_percent_complete = 0;
478 uint8_t mounting_angle_percent_complete = 0;
480 uint8_t reserved4[5] = {0};
493 float min_travel_distance_m = NAN;
499 float mounting_angle_max_std_dev_deg[3] = {NAN, NAN, NAN};
518 static constexpr uint8_t MESSAGE_VERSION = 1;
520 static constexpr uint32_t INVALID_REFERENCE_STATION = 0xFFFFFFFF;
531 uint8_t reserved[3] = {0};
534 uint32_t reference_station_id = INVALID_REFERENCE_STATION;
543 double relative_position_enu_m[3] = {NAN, NAN, NAN};
553 float position_std_enu_m[3] = {NAN, NAN, NAN};