diff --git a/ArduPlane/defines.h b/ArduPlane/defines.h index d838116f76..112b0c7145 100644 --- a/ArduPlane/defines.h +++ b/ArduPlane/defines.h @@ -144,6 +144,7 @@ enum { USE_REVERSE_THRUST_CRUISE = (1<<8), USE_REVERSE_THRUST_FBWB = (1<<9), USE_REVERSE_THRUST_GUIDED = (1<<10), + USE_REVERSE_THRUST_AUTO_LANDING_PATTERN = (1<<11), }; enum FlightOptions { diff --git a/ArduPlane/reverse_thrust.cpp b/ArduPlane/reverse_thrust.cpp index c0c2acd2c8..d81f67e157 100644 --- a/ArduPlane/reverse_thrust.cpp +++ b/ArduPlane/reverse_thrust.cpp @@ -61,6 +61,10 @@ bool Plane::allow_reverse_thrust(void) const allow |= (g.use_reverse_thrust & USE_REVERSE_THRUST_AUTO_WAYPOINT) && (nav_cmd == MAV_CMD_NAV_WAYPOINT || nav_cmd == MAV_CMD_NAV_SPLINE_WAYPOINT); + + // we are on a landing pattern + allow |= (g.use_reverse_thrust & USE_REVERSE_THRUST_AUTO_LANDING_PATTERN) && + mission.get_in_landing_sequence_flag(); } break;