Browse Source

mission: ensure precland::on_inactivation() is called once landed

sbg
Dusan Zivkovic 5 years ago committed by Beat Küng
parent
commit
7ebaf9a1cb
  1. 22
      src/modules/navigator/mission.cpp

22
src/modules/navigator/mission.cpp

@ -174,6 +174,17 @@ Mission::on_activation()
void void
Mission::on_active() 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_mission_valid(false);
/* check if anything has changed */ /* check if anything has changed */
@ -263,17 +274,6 @@ Mission::on_active()
do_abort_landing(); 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 bool

Loading…
Cancel
Save