Skip to content

Commit

Permalink
Plane: mode LoiterAltQLand to reuse loiter point if available
Browse files Browse the repository at this point in the history
  • Loading branch information
magicrub committed Oct 19, 2023
1 parent e05780c commit dd8825e
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions ArduPlane/mode_LoiterAltQLand.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ bool ModeLoiterAltQLand::_enter()
return true;
}

const Location previous_wp = plane.next_WP_loc;
const bool already_in_a_loiter = plane.reached_loiter_target();

ModeLoiter::_enter();

#if AP_TERRAIN_AVAILABLE
if (plane.terrain_enabled_in_mode(Mode::Number::QLAND)) {
plane.next_WP_loc.set_alt_cm(quadplane.qrtl_alt*100UL, Location::AltFrame::ABOVE_TERRAIN);
} else {
plane.next_WP_loc.set_alt_cm(quadplane.qrtl_alt*100UL, Location::AltFrame::ABOVE_HOME);
}
#else
plane.next_WP_loc.set_alt_cm(quadplane.qrtl_alt*100UL, Location::AltFrame::ABOVE_HOME);
#endif
// at this point plane.next_WP_loc == current_loc which means the instant we change
// modes we set that point as the center of the loiter-down circle. If we were already loitering
// then we don't want to change the center of the loiter circle
const Location loiter_wp = already_in_a_loiter ? previous_wp : plane.next_WP_loc;

handle_guided_request(loiter_wp);

switch_qland();

Expand Down

0 comments on commit dd8825e

Please sign in to comment.