From 3df333378a8f446197b7ddfd65a4efc8b74bb722 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Thu, 13 Jul 2023 19:20:44 +0200 Subject: [PATCH] FlightModeManager: avoid internal flight task running concurrently with external mode --- src/modules/flight_mode_manager/FlightModeManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/flight_mode_manager/FlightModeManager.cpp b/src/modules/flight_mode_manager/FlightModeManager.cpp index ea23d93057..11e6a47ac5 100644 --- a/src/modules/flight_mode_manager/FlightModeManager.cpp +++ b/src/modules/flight_mode_manager/FlightModeManager.cpp @@ -137,7 +137,9 @@ void FlightModeManager::updateParams() void FlightModeManager::start_flight_task() { // Do not run any flight task for VTOLs in fixed-wing mode - if (_vehicle_status_sub.get().vehicle_type == vehicle_status_s::VEHICLE_TYPE_FIXED_WING) { + if ((_vehicle_status_sub.get().vehicle_type == vehicle_status_s::VEHICLE_TYPE_FIXED_WING) + || ((_vehicle_status_sub.get().nav_state >= vehicle_status_s::NAVIGATION_STATE_EXTERNAL1) + && (_vehicle_status_sub.get().nav_state <= vehicle_status_s::NAVIGATION_STATE_EXTERNAL8))) { switchTask(FlightTaskIndex::None); return; }