diff --git a/conf/messages.xml b/conf/messages.xml index f88a63b341..64656d8d92 100644 --- a/conf/messages.xml +++ b/conf/messages.xml @@ -1954,7 +1954,11 @@ - + + + + + diff --git a/sw/airborne/modules/air_data/air_data.c b/sw/airborne/modules/air_data/air_data.c index 0f55b73f5b..e387ab9239 100644 --- a/sw/airborne/modules/air_data/air_data.c +++ b/sw/airborne/modules/air_data/air_data.c @@ -152,6 +152,14 @@ static void send_air_data(void) &air_data.amsl_baro, &air_data.airspeed, &air_data.tas_factor); } + +static void send_amsl(void) +{ + const float MeterPerFeet = 0.3048; + float amsl_baro_ft = air_data.amsl_baro / MeterPerFeet; + float amsl_gps_ft = stateGetPositionLla_f()->alt / MeterPerFeet; + DOWNLINK_SEND_AMSL(DefaultChannel, DefaultDevice, &amsl_baro_ft, &amsl_gps_ft); +} #endif /** AirData initialization. Called at startup. @@ -191,6 +199,7 @@ void air_data_init(void) #if PERIODIC_TELEMETRY register_periodic_telemetry(DefaultPeriodic, "BARO_RAW", send_baro_raw); register_periodic_telemetry(DefaultPeriodic, "AIR_DATA", send_air_data); + register_periodic_telemetry(DefaultPeriodic, "AMSL", send_amsl); #endif }