From 8d5a0b0b8cab562269cd06b46ceb83d63adb0906 Mon Sep 17 00:00:00 2001 From: Darren Lines Date: Mon, 27 Sep 2021 16:47:37 +0100 Subject: [PATCH] Changed the logic I've changed the logic so that it now explicitly ignores certain modes (RTH, WP, FS, and emergency landing). This way the override radius can be changed without being in POS HOLD, allowing it to be preselected. --- src/main/programming/logic_condition.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/programming/logic_condition.c b/src/main/programming/logic_condition.c index d5f5a9f18b..4326e6e8b8 100644 --- a/src/main/programming/logic_condition.c +++ b/src/main/programming/logic_condition.c @@ -730,7 +730,8 @@ int16_t getRcChannelOverride(uint8_t channel, int16_t originalValue) { } uint32_t getLoiterRadius(uint32_t loiterRadius) { - if (LOGIC_CONDITION_GLOBAL_FLAG(LOGIC_CONDITION_GLOBAL_FLAG_OVERRIDE_LOITER_RADIUS) && FLIGHT_MODE(NAV_POSHOLD_MODE)) { + if (LOGIC_CONDITION_GLOBAL_FLAG(LOGIC_CONDITION_GLOBAL_FLAG_OVERRIDE_LOITER_RADIUS) && + !(FLIGHT_MODE(FAILSAFE_MODE) || FLIGHT_MODE(NAV_RTH_MODE) || FLIGHT_MODE(NAV_WP_MODE) || navigationIsExecutingAnEmergencyLanding())) { return constrain(logicConditionValuesByType[LOGIC_CONDITION_LOITER_OVERRIDE], loiterRadius, 100000); } else { return loiterRadius;