aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/ets_airspeed
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2013-07-29 07:42:23 +1000
committerLorenz Meier <lm@inf.ethz.ch>2013-07-30 10:58:47 +0200
commitdad76c56c63a358ec2c4ea2248ef617843b48bab (patch)
tree440104bfa9e24ec39c42d301f590729f6d130986 /src/drivers/ets_airspeed
parent043dc4e225a697513a0f3069bd66b97bd69300b4 (diff)
downloadpx4-firmware-dad76c56c63a358ec2c4ea2248ef617843b48bab.tar.gz
px4-firmware-dad76c56c63a358ec2c4ea2248ef617843b48bab.tar.bz2
px4-firmware-dad76c56c63a358ec2c4ea2248ef617843b48bab.zip
ets_airspeed: cope with zero value from ETS airspeed sensor
Diffstat (limited to 'src/drivers/ets_airspeed')
-rw-r--r--src/drivers/ets_airspeed/ets_airspeed.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/drivers/ets_airspeed/ets_airspeed.cpp b/src/drivers/ets_airspeed/ets_airspeed.cpp
index 2e32ed334..de8028b0f 100644
--- a/src/drivers/ets_airspeed/ets_airspeed.cpp
+++ b/src/drivers/ets_airspeed/ets_airspeed.cpp
@@ -157,6 +157,14 @@ ETSAirspeed::collect()
}
uint16_t diff_pres_pa = val[1] << 8 | val[0];
+ if (diff_pres_pa == 0) {
+ // a zero value means the pressure sensor cannot give us a
+ // value. We need to return, and not report a value or the
+ // caller could end up using this value as part of an
+ // average
+ log("zero value from sensor");
+ return -1;
+ }
if (diff_pres_pa < _diff_pres_offset + MIN_ACCURATE_DIFF_PRES_PA) {
diff_pres_pa = 0;