|  | Paparazzi UAS v7.0_unstable
    Paparazzi is a free software Unmanned Aircraft System. | 
Air Data interface. More...
#include "std.h"#include "pprzlink/pprzlink_device.h"#include "pprzlink/pprzlink_transport.h" Include dependency graph for air_data.h:
 Include dependency graph for air_data.h: This graph shows which files directly or indirectly include this file:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
| Data Structures | |
| struct | AirData | 
| Air Data strucute.  More... | |
| Functions | |
| void | air_data_init (void) | 
| AirData initialization. | |
| void | air_data_periodic (void) | 
| Check health. | |
| void | air_data_parse_WIND_INFO (struct link_device *dev, struct transport_tx *trans, uint8_t *buf) | 
| Parse datalink wind info message. | |
| float | air_data_get_amsl (void) | 
| Return AMSL (altitude AboveSeaLevel). | |
| float | eas_from_dynamic_pressure (float q) | 
| Calculate equivalent airspeed from dynamic pressure. | |
| float | get_tas_factor (float p, float t) | 
| Calculate true airspeed (TAS) factor. | |
| float | tas_from_eas (float eas) | 
| Calculate true airspeed from equivalent airspeed. | |
| float | eas_from_tas (float tas) | 
| Calculate equivalent airspeed from true airspeed. | |
| float | tas_from_dynamic_pressure (float q) | 
| Calculate true airspeed from dynamic pressure. | |
| Variables | |
| struct AirData | air_data | 
| global AirData state | |
Air Data interface.
Definition in file air_data.h.
| struct AirData | 
Air Data strucute.
Definition at line 39 of file air_data.h.
| Data Fields | ||
|---|---|---|
| float | airspeed | Equivalent Air Speed (equals to Calibrated Air Speed at low speed/altitude) (in m/s, -1 if unknown. | 
| float | amsl_baro | altitude above sea level in m from pressure and QNH | 
| bool | amsl_baro_valid | TRUE if amsl_baro is currently valid. | 
| float | aoa | angle of attack (rad) | 
| bool | calc_airspeed | if TRUE, calculate airspeed from differential pressure | 
| bool | calc_amsl_baro | if TRUE, calculate amsl_baro | 
| bool | calc_qnh_once | flag to calculate QNH with next pressure measurement | 
| bool | calc_tas_factor | if TRUE, calculate tas_factor when getting a temp measurement | 
| float | differential | Differential pressure (total - static pressure) (Pa) | 
| float | pressure | Static atmospheric pressure (Pa), -1 if unknown. | 
| float | qnh | Barometric pressure adjusted to sea level in hPa, -1 if unknown. | 
| float | sideslip | sideslip angle (rad) | 
| 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 | temperature | temperature in degrees Celcius, -1000 if unknown | 
| float | wind_dir | wind direction (rad, 0 north, >0 clockwise) | 
| float | wind_speed | wind speed (m/s) | 
Return AMSL (altitude AboveSeaLevel).
If AMSL from baro is valid, return that, otherwise from gps.
Definition at line 259 of file air_data.c.
References air_data, LlaCoor_f::alt, AirData::amsl_baro, AirData::amsl_baro_valid, and stateGetPositionLla_f().
Referenced by compute_tas_factor().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:AirData initialization.
Called at startup.
Called at startup. Bind ABI messages
Definition at line 218 of file air_data.c.
References air_data, AIR_DATA_AIRSPEED_ID, AIR_DATA_BARO_ABS_ID, AIR_DATA_BARO_DIFF_ID, AIR_DATA_CALC_AIRSPEED, AIR_DATA_CALC_AMSL_BARO, AIR_DATA_CALC_TAS_FACTOR, AIR_DATA_INCIDENCE_ID, AIR_DATA_TAS_FACTOR, AIR_DATA_TEMPERATURE_ID, AirData::airspeed, airspeed_cb(), airspeed_ev, AirData::amsl_baro, AirData::amsl_baro_valid, AirData::aoa, baro_health_counter, AirData::calc_airspeed, AirData::calc_amsl_baro, AirData::calc_qnh_once, AirData::calc_tas_factor, DefaultPeriodic, AirData::differential, foo, incidence_cb(), incidence_ev, AirData::pressure, pressure_abs_cb(), pressure_abs_ev, pressure_diff_cb(), pressure_diff_ev, AirData::qnh, register_periodic_telemetry(), send_air_data(), send_amsl(), send_baro_raw(), AirData::sideslip, AirData::tas, AirData::tas_factor, AirData::temperature, temperature_cb(), temperature_ev, AirData::wind_dir, and AirData::wind_speed.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | extern | 
Parse datalink wind info message.
Definition at line 279 of file air_data.c.
References air_data, AirData::airspeed, dev, eas_from_tas(), float_vect2_norm(), foo, stateGetAirspeed_f(), stateSetAirspeed_f(), stateSetHorizontalWindspeed_f(), stateSetVerticalWindspeed_f(), AirData::tas, AirData::wind_dir, AirData::wind_speed, FloatVect2::x, and FloatVect2::y.
 Here is the call graph for this function:
 Here is the call graph for this function:Check health.
Needs to be called periodically.
Definition at line 269 of file air_data.c.
References air_data, AirData::amsl_baro_valid, and baro_health_counter.
Calculate equivalent airspeed from dynamic pressure.
Dynamic pressure 
| q | dynamic pressure in Pa | 
Dynamic pressure 
Airspeed from dynamic pressure:
![\[ v = \frac12 \sqrt{\frac{2q}{\rho}} \]](form_14.png)
 with 

| q | dynamic pressure in Pa | 
Definition at line 322 of file air_data.c.
References foo, PPRZ_ISA_AIR_DENSITY, and sign().
Referenced by pressure_diff_cb(), and tas_from_dynamic_pressure().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate equivalent airspeed from true airspeed.
| tas | true airspeed (TAS) in m/s | 
EAS from True airspeed (TAS): EAS = TAS / air_data.tas_factor
| tas | true airspeed (TAS) in m/s | 
Definition at line 410 of file air_data.c.
References air_data, compute_tas_factor(), and AirData::tas_factor.
Referenced by air_data_parse_WIND_INFO(), and wind_estimation_quadrotor_periodic().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate true airspeed (TAS) factor.
TAS = tas_factor * EAS
| p | current air pressure in Pa | 
| t | current air temperature in degrees Celcius | 
TAS = tas_factor * EAS
True airspeed (TAS) from equivalent airspeed (EAS):
![\[\mbox{TAS} = \mbox{EAS} \sqrt{\frac{\rho_0}{\rho}}\]](form_17.png)
 and 




| p | current air pressure in Pa | 
| t | current air temperature in degrees Celcius | 
Definition at line 355 of file air_data.c.
References foo, KelvinOfCelsius, p, PPRZ_ISA_SEA_LEVEL_PRESSURE, and PPRZ_ISA_SEA_LEVEL_TEMP.
Referenced by compute_tas_factor(), and temperature_cb().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate true airspeed from dynamic pressure.
Dynamic pressure 
| q | dynamic pressure in Pa | 
Definition at line 424 of file air_data.c.
References eas_from_dynamic_pressure(), and tas_from_eas().
Referenced by pressure_diff_cb().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Calculate true airspeed from equivalent airspeed.
| eas | equivalent airspeed (EAS) in m/s | 
True airspeed (TAS) from EAS: TAS = air_data.tas_factor * EAS
| eas | equivalent airspeed (EAS) in m/s | 
Definition at line 395 of file air_data.c.
References air_data, compute_tas_factor(), foo, and AirData::tas_factor.
Referenced by airspeed_cb(), airspeed_cb(), pressure_diff_cb(), and tas_from_dynamic_pressure().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
global AirData state
Definition at line 41 of file air_data.c.
Referenced by air_data_get_amsl(), air_data_init(), air_data_parse_WIND_INFO(), air_data_periodic(), airspeed_cb(), compute_tas_factor(), eas_from_tas(), incidence_cb(), pressure_abs_cb(), pressure_diff_cb(), save_speeds(), send_air_data(), send_amsl(), send_baro_raw(), send_windtunnel_meas(), tas_from_eas(), and temperature_cb().