From ca480ff8680fd32ceff42f8892defc554720956f Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sat, 24 Jun 2017 16:07:18 -0400 Subject: [PATCH] ms4525 treat max temperature as an error --- src/drivers/meas_airspeed/meas_airspeed.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/drivers/meas_airspeed/meas_airspeed.cpp b/src/drivers/meas_airspeed/meas_airspeed.cpp index 86abc74dcb..5ece89cd31 100644 --- a/src/drivers/meas_airspeed/meas_airspeed.cpp +++ b/src/drivers/meas_airspeed/meas_airspeed.cpp @@ -210,6 +210,13 @@ MEASAirspeed::collect() dp_raw = 0x3FFF & dp_raw; dT_raw = (val[2] << 8) + val[3]; dT_raw = (0xFFE0 & dT_raw) >> 5; + + // dT max is almost certainly an invalid reading + if (dT_raw == 2047) { + perf_count(_comms_errors); + return -EAGAIN; + } + float temperature = ((200.0f * dT_raw) / 2047) - 50; // Calculate differential pressure. As its centered around 8000