From b38d6e31486b70841b6528d9b541a3774edbfebf Mon Sep 17 00:00:00 2001 From: "Konstantin Sharlaimov (DigitalEntity)" Date: Mon, 13 Mar 2017 23:48:30 +1000 Subject: [PATCH] Protection from activating RTH w/o altitude sensor --- src/main/navigation/navigation.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/navigation/navigation.c b/src/main/navigation/navigation.c index 3eefe8b2f5..6ce9d31eef 100755 --- a/src/main/navigation/navigation.c +++ b/src/main/navigation/navigation.c @@ -787,8 +787,8 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_INITIALIZE(navigati { navigationFSMStateFlags_t prevFlags = navGetStateFlags(previousState); - if (!posControl.flags.hasValidHeadingSensor || !STATE(GPS_FIX_HOME)) { - // Heading sensor and HOME fix are mandatory for RTH. If not satisfied - switch to emergency landing + if (!posControl.flags.hasValidHeadingSensor || !posControl.flags.hasValidAltitudeSensor || !STATE(GPS_FIX_HOME)) { + // Heading sensor, altitude sensor and HOME fix are mandatory for RTH. If not satisfied - switch to emergency landing return NAV_FSM_EVENT_SWITCH_TO_EMERGENCY_LANDING; } @@ -2345,7 +2345,7 @@ static navigationFSMEvent_t selectNavEventFromBoxModeInput(void) } // RTH/Failsafe_RTH can override PASSTHRU - if (posControl.flags.forcedRTHActivated || (IS_RC_MODE_ACTIVE(BOXNAVRTH) && canActivatePosHold && STATE(GPS_FIX_HOME))) { + if (posControl.flags.forcedRTHActivated || (IS_RC_MODE_ACTIVE(BOXNAVRTH) && canActivatePosHold && canActivateAltHold && STATE(GPS_FIX_HOME))) { // If we request forced RTH - attempt to activate it no matter what // This might switch to emergency landing controller if GPS is unavailable canActivateWaypoint = false; // Block WP mode if we switched to RTH for whatever reason