commander: prevent setting nav_state to takeoff after disarming (#25735)

* commander: prevent setting nav_state after disarming to takeoff

* wrap in function
This commit is contained in:
Mahima Yoga
2025-10-10 19:59:26 +02:00
committed by GitHub
parent edc7a2bb80
commit 96904636f3
2 changed files with 3 additions and 1 deletions
+2 -1
View File
@@ -77,7 +77,8 @@ bool UserModeIntention::change(uint8_t user_intended_nav_state, ModeChangeSource
// Special case termination state: even though this mode prevents arming,
// still don't switch out of it after disarm and thus store it in _nav_state_after_disarming.
if (!_health_and_arming_checks.modePreventsArming(user_intended_nav_state)
if ((!_health_and_arming_checks.modePreventsArming(user_intended_nav_state)
&& !isTakeOffIntended(user_intended_nav_state))
|| user_intended_nav_state == vehicle_status_s::NAVIGATION_STATE_TERMINATION) {
_nav_state_after_disarming = user_intended_nav_state;
}
@@ -91,6 +91,7 @@ public:
private:
bool isArmed() const { return _vehicle_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED; }
bool isTakeOffIntended(uint8_t user_intented_nav_state) const {return user_intented_nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_TAKEOFF || user_intented_nav_state == vehicle_status_s::NAVIGATION_STATE_AUTO_VTOL_TAKEOFF;}
const vehicle_status_s &_vehicle_status;
const HealthAndArmingChecks &_health_and_arming_checks;