From dd386f1e1d255ccd7a004c7dd1c76ed1ec5bc235 Mon Sep 17 00:00:00 2001 From: Felix Ruess Date: Fri, 31 Oct 2014 14:54:25 +0100 Subject: [PATCH] [modules] airspeed_ets: retry after failed transaction --- sw/airborne/modules/sensors/airspeed_ets.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sw/airborne/modules/sensors/airspeed_ets.h b/sw/airborne/modules/sensors/airspeed_ets.h index 9e1af6ffbae..d0eb9972d83 100644 --- a/sw/airborne/modules/sensors/airspeed_ets.h +++ b/sw/airborne/modules/sensors/airspeed_ets.h @@ -55,6 +55,15 @@ extern void airspeed_ets_init( void ); extern void airspeed_ets_read_periodic( void ); extern void airspeed_ets_read_event( void ); -#define AirspeedEtsEvent() { if (airspeed_ets_i2c_trans.status == I2CTransSuccess) airspeed_ets_read_event(); } +static inline void AirspeedEtsEvent(void) +{ + if (airspeed_ets_i2c_trans.status == I2CTransSuccess) { + airspeed_ets_read_event(); + } + else if (airspeed_ets_i2c_trans.status == I2CTransFailed) { + // if transaction failed, mark as done so can be retried + airspeed_ets_i2c_trans.status = I2CTransDone; + } +} #endif // AIRSPEED_ETS_H