From f35dd086ac57e1f1d539bb016bcb31fc29969250 Mon Sep 17 00:00:00 2001 From: Bruce Luckcuck Date: Tue, 19 Nov 2019 18:08:41 -0500 Subject: [PATCH] Fix small angle check when ACC is disabled or not defined Fixes related to #9185 --- src/main/flight/imu.c | 6 +++++- src/test/unit/flight_imu_unittest.cc | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/flight/imu.c b/src/main/flight/imu.c index 5d4e9e947..b530fa9c2 100644 --- a/src/main/flight/imu.c +++ b/src/main/flight/imu.c @@ -724,5 +724,9 @@ void imuQuaternionHeadfreeTransformVectorEarthToBody(t_fp_vector_def *v) bool isUpright(void) { - return attitudeIsEstablished && getCosTiltAngle() > smallAngleCosZ; +#ifdef USE_ACC + return !sensors(SENSOR_ACC) || (attitudeIsEstablished && getCosTiltAngle() > smallAngleCosZ); +#else + return true; +#endif } diff --git a/src/test/unit/flight_imu_unittest.cc b/src/test/unit/flight_imu_unittest.cc index bc5fc2441..6ff358983 100644 --- a/src/test/unit/flight_imu_unittest.cc +++ b/src/test/unit/flight_imu_unittest.cc @@ -234,8 +234,7 @@ uint16_t disableFlightMode(flightModeFlags_e mask) bool sensors(uint32_t mask) { - UNUSED(mask); - return false; + return mask & SENSOR_ACC; }; uint32_t millis(void) { return 0; }