aboutsummaryrefslogtreecommitdiff
path: root/src/modules/sensors/sensors.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-03-23 16:58:17 +0100
committerLorenz Meier <lm@inf.ethz.ch>2014-03-23 16:58:17 +0100
commita0ceeee9ef9988fa470524462e3097e52c63ed8f (patch)
tree2d8863c0c561b740d8c5f5b02a1cc77fef401e93 /src/modules/sensors/sensors.cpp
parenta490bd04eefc795b63e13d867fc8844f5b438d6e (diff)
parent5113b4a365216987ca2f95b986538f3d3de8734f (diff)
downloadpx4-firmware-a0ceeee9ef9988fa470524462e3097e52c63ed8f.tar.gz
px4-firmware-a0ceeee9ef9988fa470524462e3097e52c63ed8f.tar.bz2
px4-firmware-a0ceeee9ef9988fa470524462e3097e52c63ed8f.zip
Merge branch 'airspeed_filter_fixes' into paul_estimator_numeric
Diffstat (limited to 'src/modules/sensors/sensors.cpp')
-rw-r--r--src/modules/sensors/sensors.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/modules/sensors/sensors.cpp b/src/modules/sensors/sensors.cpp
index ebaa6b3aa..f890c4c7f 100644
--- a/src/modules/sensors/sensors.cpp
+++ b/src/modules/sensors/sensors.cpp
@@ -1033,10 +1033,12 @@ Sensors::diff_pres_poll(struct sensor_combined_s &raw)
raw.differential_pressure_timestamp = _diff_pres.timestamp;
raw.differential_pressure_filtered_pa = _diff_pres.differential_pressure_filtered_pa;
+ float air_temperature_celcius = (_diff_pres.temperature > -300.0f) ? _diff_pres.temperature : (raw.baro_temp_celcius - PCB_TEMP_ESTIMATE_DEG);
+
_airspeed.timestamp = _diff_pres.timestamp;
_airspeed.indicated_airspeed_m_s = calc_indicated_airspeed(_diff_pres.differential_pressure_filtered_pa);
_airspeed.true_airspeed_m_s = calc_true_airspeed(_diff_pres.differential_pressure_filtered_pa + raw.baro_pres_mbar * 1e2f,
- raw.baro_pres_mbar * 1e2f, raw.baro_temp_celcius - PCB_TEMP_ESTIMATE_DEG);
+ raw.baro_pres_mbar * 1e2f, air_temperature_celcius);
/* announce the airspeed if needed, just publish else */
if (_airspeed_pub > 0) {
@@ -1244,6 +1246,8 @@ Sensors::adc_poll(struct sensor_combined_s &raw)
_diff_pres.timestamp = t;
_diff_pres.differential_pressure_pa = diff_pres_pa;
+ _diff_pres.differential_pressure_filtered_pa = diff_pres_pa;
+ _diff_pres.temperature = -1000.0f;
_diff_pres.voltage = voltage;
/* announce the airspeed if needed, just publish else */