From 7ebaf9a1cbb147a5406be76e08ce1276fcab0fc3 Mon Sep 17 00:00:00 2001 From: Dusan Zivkovic Date: Thu, 24 Oct 2019 16:19:40 +0200 Subject: [PATCH] mission: ensure precland::on_inactivation() is called once landed --- src/modules/navigator/mission.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp index d9f8b02d1c..adb1e7f0d7 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -174,6 +174,17 @@ Mission::on_activation() void Mission::on_active() { + if (_work_item_type == WORK_ITEM_TYPE_PRECISION_LAND) { + // switch out of precision land once landed + if (_navigator->get_land_detected()->landed) { + _navigator->get_precland()->on_inactivation(); + _work_item_type = WORK_ITEM_TYPE_DEFAULT; + + } else { + _navigator->get_precland()->on_active(); + } + } + check_mission_valid(false); /* check if anything has changed */ @@ -263,17 +274,6 @@ Mission::on_active() do_abort_landing(); } - - if (_work_item_type == WORK_ITEM_TYPE_PRECISION_LAND) { - // switch out of precision land once landed - if (_navigator->get_land_detected()->landed) { - _navigator->get_precland()->on_inactivation(); - _work_item_type = WORK_ITEM_TYPE_DEFAULT; - - } else { - _navigator->get_precland()->on_active(); - } - } } bool