From c2a8c122b3fa631efc7053b7c8cd90f470784919 Mon Sep 17 00:00:00 2001 From: Felix Ruess Date: Sun, 12 Oct 2014 12:39:11 +0200 Subject: [PATCH] [modules] air_data: cut at zero instead of fabs --- sw/airborne/modules/air_data/air_data.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sw/airborne/modules/air_data/air_data.c b/sw/airborne/modules/air_data/air_data.c index 39116a9f853..27346dcf21e 100644 --- a/sw/airborne/modules/air_data/air_data.c +++ b/sw/airborne/modules/air_data/air_data.c @@ -109,7 +109,8 @@ static void pressure_diff_cb(uint8_t __attribute__((unused)) sender_id, const fl { air_data.differential = *pressure; if (air_data.calc_airspeed) { - air_data.airspeed = sqrtf(fabs(air_data.differential) * air_data.airspeed_scale); + /* lower bound of differential pressure at zero, no flying backwards guys */ + air_data.airspeed = sqrtf(Max(air_data.differential, 0) * air_data.airspeed_scale); stateSetAirspeed_f(&air_data.airspeed); } }