diff --git a/conf/messages.xml b/conf/messages.xml index d958c4e631..83c8e99ea3 100644 --- a/conf/messages.xml +++ b/conf/messages.xml @@ -1942,13 +1942,13 @@ - - - - - - - + static pressure + differential pressure + air temperature + barometric pressure adjusted to sea level + barometric altitude above mean sea level + Equivalent Air Speed (or Calibrated Air Speed at low speed/altitude) + True Air Speed (when P, T and P_diff are available) diff --git a/sw/airborne/modules/air_data/air_data.c b/sw/airborne/modules/air_data/air_data.c index c2a6676141..806f86304c 100644 --- a/sw/airborne/modules/air_data/air_data.c +++ b/sw/airborne/modules/air_data/air_data.c @@ -126,7 +126,8 @@ static void pressure_diff_cb(uint8_t __attribute__((unused)) sender_id, float pr { air_data.differential = pressure; if (air_data.calc_airspeed) { - air_data.airspeed = tas_from_dynamic_pressure(air_data.differential); + air_data.airspeed = eas_from_dynamic_pressure(air_data.differential); + air_data.tas = tas_from_eas(air_data.airspeed); #if USE_AIRSPEED_AIR_DATA stateSetAirspeed_f(&air_data.airspeed); #endif @@ -156,7 +157,7 @@ static void send_air_data(struct transport_tx *trans, struct link_device *dev) &air_data.pressure, &air_data.differential, &air_data.temperature, &air_data.qnh, &air_data.amsl_baro, &air_data.airspeed, - &air_data.tas_factor); + &air_data.tas); } static void send_amsl(struct transport_tx *trans, struct link_device *dev) @@ -187,6 +188,7 @@ void air_data_init(void) air_data.pressure = -1.0f; air_data.qnh = -1.0f; air_data.airspeed = -1.0f; + air_data.tas = -1.0f; air_data.temperature = -1000.0f; air_data.differential = 0.0f; air_data.amsl_baro = 0.0f; diff --git a/sw/airborne/modules/air_data/air_data.h b/sw/airborne/modules/air_data/air_data.h index 5d7bc90a70..95dcd523c3 100644 --- a/sw/airborne/modules/air_data/air_data.h +++ b/sw/airborne/modules/air_data/air_data.h @@ -39,7 +39,8 @@ struct AirData { float differential; ///< Differential pressure (total - static pressure) (Pa) float temperature; ///< temperature in degrees Celcius, -1000 if unknown - float airspeed; ///< Conventional Air Speed in m/s, -1 if unknown + float airspeed; ///< Equivalent Air Speed (equals to Calibrated Air Speed at low speed/altitude) (in m/s, -1 if unknown + float tas; ///< True Air Speed (TAS) in m/s, -1 if unknown float tas_factor; ///< factor to convert equivalent airspeed (EAS) to true airspeed (TAS) float qnh; ///< Barometric pressure adjusted to sea level in hPa, -1 if unknown float amsl_baro; ///< altitude above sea level in m from pressure and QNH