From c5fde63440b5c90413c94a2b084b253b876246b7 Mon Sep 17 00:00:00 2001 From: Konrad Date: Mon, 11 Mar 2024 14:56:50 +0100 Subject: [PATCH] mission: The mission check on activation should only be performed for a mission, not RTL. We need to make sure that when the RTL is triggered, it should not reevaluate it, as when it was valid but evaluated to false on activation, it can't do a RTL. --- src/modules/navigator/mission.cpp | 2 ++ src/modules/navigator/mission_base.cpp | 2 -- src/modules/navigator/mission_base.h | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp index 9899d751f2..06b4151bdb 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -86,6 +86,8 @@ Mission::on_activation() { _need_mission_save = true; + check_mission_valid(true); + MissionBase::on_activation(); } diff --git a/src/modules/navigator/mission_base.cpp b/src/modules/navigator/mission_base.cpp index 495639ba33..4a376995a0 100644 --- a/src/modules/navigator/mission_base.cpp +++ b/src/modules/navigator/mission_base.cpp @@ -207,8 +207,6 @@ MissionBase::on_activation() _mission_has_been_activated = true; _system_disarmed_while_inactive = false; - check_mission_valid(true); - update_mission(); // reset the cache and fill it with the items up to the previous item. The cache contains diff --git a/src/modules/navigator/mission_base.h b/src/modules/navigator/mission_base.h index 117e811a0f..7f234bb7d2 100644 --- a/src/modules/navigator/mission_base.h +++ b/src/modules/navigator/mission_base.h @@ -215,6 +215,12 @@ protected: */ bool isMissionValid() const; + /** + * @brief Check whether a mission is ready to go + * @param[in] forced flag if the check has to be run irregardles of any updates. + */ + void check_mission_valid(bool forced = false); + /** * On mission update * Change behaviour after external mission update. @@ -344,12 +350,6 @@ private: */ void updateMavlinkMission(); - /** - * @brief Check whether a mission is ready to go - * @param[in] forced flag if the check has to be run irregardles of any updates. - */ - void check_mission_valid(bool forced = false); - /** * Reset mission */