From fe90e7882bb2749f505809a7297e8b9cffcf0472 Mon Sep 17 00:00:00 2001 From: Andreas Antener Date: Sun, 20 Dec 2015 17:41:21 +0100 Subject: [PATCH] do mission notifications for landing, switch to idle setpoint when landed --- src/modules/navigator/land.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/modules/navigator/land.cpp b/src/modules/navigator/land.cpp index b8182e2fed..2f9ae7e57c 100644 --- a/src/modules/navigator/land.cpp +++ b/src/modules/navigator/land.cpp @@ -74,6 +74,10 @@ Land::on_activation() { /* set current mission item to Land */ set_land_item(&_mission_item, true); + _navigator->get_mission_result()->reached = false; + _navigator->get_mission_result()->finished = false; + _navigator->set_mission_result_updated(); + reset_mission_item_reached(); /* convert mission item to current setpoint */ struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); @@ -89,7 +93,13 @@ Land::on_activation() void Land::on_active() { - if (is_mission_item_reached()) { + if (is_mission_item_reached() && !_navigator->get_mission_result()->finished) { + _navigator->get_mission_result()->finished = true; + _navigator->set_mission_result_updated(); set_idle_item(&_mission_item); + + struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); + mission_item_to_position_setpoint(&_mission_item, &pos_sp_triplet->current); + _navigator->set_position_setpoint_triplet_updated(); } }