mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-05 15:08:53 +08:00
fix: fallback to mode set by COM_POSCTL_NAVL upon navigation loss in pos slow mode
This commit is contained in:
@@ -661,8 +661,9 @@ FailsafeBase::Action Failsafe::checkModeFallback(const failsafe_flags_s &status_
|
||||
switch (position_control_navigation_loss_response(_param_com_posctl_navl.get())) {
|
||||
case position_control_navigation_loss_response::Altitude_Manual: // AltCtrl/Manual
|
||||
|
||||
// PosCtrl -> AltCtrl
|
||||
if (user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL
|
||||
// PosCtrl/PositionSlow -> AltCtrl
|
||||
if ((user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL ||
|
||||
user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSITION_SLOW)
|
||||
&& !modeCanRun(status_flags, user_intended_mode)) {
|
||||
action = Action::FallbackAltCtrl;
|
||||
user_intended_mode = vehicle_status_s::NAVIGATION_STATE_ALTCTL;
|
||||
@@ -679,8 +680,9 @@ FailsafeBase::Action Failsafe::checkModeFallback(const failsafe_flags_s &status_
|
||||
|
||||
case position_control_navigation_loss_response::Land_Descend: // Land/Terminate
|
||||
|
||||
// PosCtrl -> Land
|
||||
if (user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL
|
||||
// PosCtrl/PositionSlow -> Land
|
||||
if ((user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL ||
|
||||
user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSITION_SLOW)
|
||||
&& !modeCanRun(status_flags, user_intended_mode)) {
|
||||
action = Action::Land;
|
||||
user_intended_mode = vehicle_status_s::NAVIGATION_STATE_AUTO_LAND;
|
||||
|
||||
Reference in New Issue
Block a user