From e0e60c8654761c6daede39cdb7d84995f514c61e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 7 Mar 2022 12:39:46 +1100 Subject: [PATCH] Plane: disallow mavlink disarm while flying this relies on is_flying(), and we will need to watch for reports of the heuristics failing --- ArduPlane/AP_Arming.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ArduPlane/AP_Arming.cpp b/ArduPlane/AP_Arming.cpp index 1abe179c28..a38289b448 100644 --- a/ArduPlane/AP_Arming.cpp +++ b/ArduPlane/AP_Arming.cpp @@ -275,12 +275,15 @@ bool AP_Arming_Plane::arm(const AP_Arming::Method method, const bool do_arming_c bool AP_Arming_Plane::disarm(const AP_Arming::Method method, bool do_disarm_checks) { if (do_disarm_checks && - method == AP_Arming::Method::RUDDER) { - // don't allow rudder-disarming in flight: + (method == AP_Arming::Method::MAVLINK || + method == AP_Arming::Method::RUDDER)) { if (plane.is_flying()) { - // obviously this could happen in-flight so we can't warn about it + // don't allow mavlink or rudder disarm while flying return false; } + } + + if (do_disarm_checks && method == AP_Arming::Method::RUDDER) { // option must be enabled: if (get_rudder_arming_type() != AP_Arming::RudderArming::ARMDISARM) { gcs().send_text(MAV_SEVERITY_INFO, "Rudder disarm: disabled");