diff options
author | Andrew Tridgell <tridge@samba.org> | 2013-07-29 07:42:23 +1000 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-07-30 10:58:47 +0200 |
commit | dad76c56c63a358ec2c4ea2248ef617843b48bab (patch) | |
tree | 440104bfa9e24ec39c42d301f590729f6d130986 /src/drivers/ets_airspeed/ets_airspeed.cpp | |
parent | 043dc4e225a697513a0f3069bd66b97bd69300b4 (diff) | |
download | px4-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/ets_airspeed.cpp')
-rw-r--r-- | src/drivers/ets_airspeed/ets_airspeed.cpp | 8 |
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; |