From 6e3a2663bff10d6d7b532db8031c9de04f67dcb5 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 12 Mar 2022 17:53:58 +1100 Subject: [PATCH] Plane: check that RTL_AUTOLAND is set if using DO_LAND_START --- ArduPlane/AP_Arming.cpp | 13 +++++++++++++ ArduPlane/AP_Arming.h | 1 + 2 files changed, 14 insertions(+) diff --git a/ArduPlane/AP_Arming.cpp b/ArduPlane/AP_Arming.cpp index f3d9d93f5f..60d5f7f3b3 100644 --- a/ArduPlane/AP_Arming.cpp +++ b/ArduPlane/AP_Arming.cpp @@ -361,3 +361,16 @@ void AP_Arming_Plane::update_soft_armed() } } +/* + extra plane mission checks + */ +bool AP_Arming_Plane::mission_checks(bool report) +{ + // base checks + bool ret = AP_Arming::mission_checks(report); + if (plane.mission.get_landing_sequence_start() > 0 && plane.g.rtl_autoland.get() == 0) { + ret = false; + check_failed(ARMING_CHECK_MISSION, report, "DO_LAND_START set and RTL_AUTOLAND disabled"); + } + return ret; +} diff --git a/ArduPlane/AP_Arming.h b/ArduPlane/AP_Arming.h index 02239458d3..5f5051e6f1 100644 --- a/ArduPlane/AP_Arming.h +++ b/ArduPlane/AP_Arming.h @@ -34,6 +34,7 @@ protected: bool ins_checks(bool report) override; bool quadplane_checks(bool display_failure); + bool mission_checks(bool report) override; private: void change_arm_state(void);