From 7eee9deb4c8ee08ed66019c2342007991fe59819 Mon Sep 17 00:00:00 2001 From: Dusan Zivkovic Date: Mon, 9 Dec 2019 18:14:53 +0100 Subject: [PATCH] mission: handle precision landing inactivation properly --- 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 3cf11a6c6f..27fe65ab88 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -143,6 +143,10 @@ Mission::on_inactivation() cmd.param1 = -1.0f; cmd.param3 = 1.0f; _navigator->publish_vehicle_cmd(&cmd); + + if (_navigator->get_precland()->is_activated()) { + _navigator->get_precland()->on_inactivation(); + } } void @@ -174,17 +178,6 @@ 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 */ @@ -270,6 +263,13 @@ Mission::on_active() do_abort_landing(); } + + if (_work_item_type == WORK_ITEM_TYPE_PRECISION_LAND) { + _navigator->get_precland()->on_active(); + + } else if (_navigator->get_precland()->is_activated()) { + _navigator->get_precland()->on_inactivation(); + } } bool