Rate limit corrected UART telemetry

This commit is contained in:
2026-07-23 23:55:33 +03:00
parent 9ff895600b
commit bdce4a3046
7 changed files with 66 additions and 18 deletions
@@ -47,8 +47,8 @@ void gps_system_uart_publish_fused_location(
(output->gps_accepted > 0u) && (age_ms <= GPS_AIDED_MAX_AGE_MS)
? "gps_aided" : "dead_reckoning";
/* At 50 Hz this compact record uses about 14% of the 460800-baud link,
* leaving headroom for navigation work and lower-rate diagnostics. */
/* The application rate-limits this compact record by IMU sample count,
* leaving UART headroom without reducing the ESKF prediction rate. */
GPS_LOG(DEBUG_STATUS, GPS_LOG_CAT_LOCATION,
"source=imu_corrected mode=%s lat=%.9lf lon=%.9lf "
"height=%.2lf gps_age_ms=%lu\r\n",
@@ -60,13 +60,15 @@ void gps_system_uart_publish_startup(
bool fusion_enabled,
bool fusion_initialized,
bool imu_initialized,
bool imu_running)
bool imu_running,
unsigned int fused_publish_every_samples)
{
imu_sensor_diagnostics_t imu;
imu_sensor_get_diagnostics(&imu);
GPS_LOG(DEBUG_STATUS, GPS_LOG_CAT_FUSION,
"init eskf_enabled=%u eskf_ready=%u imu=%u sensor=%s who=0x%02x "
"running=%u target_hz=%lu actual_hz=%lu nav_ms=%u timebase_hz=%lu\r\n",
"running=%u target_hz=%lu actual_hz=%lu publish_every=%u "
"nav_ms=%u timebase_hz=%lu\r\n",
fusion_enabled ? 1u : 0u,
fusion_initialized ? 1u : 0u,
imu_initialized ? 1u : 0u,
@@ -75,6 +77,7 @@ void gps_system_uart_publish_startup(
imu_running ? 1u : 0u,
(unsigned long)imu.requested_odr_hz,
(unsigned long)imu.configured_odr_hz,
fused_publish_every_samples,
GPS_NAV_SOLVE_PERIOD_MS,
(unsigned long)BSP_CLINT_TIMEBASE_HZ);
}