From f91e995e98d712211f71ae24b0f52483bc879eba Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 20 Jul 2021 14:20:47 +1000 Subject: [PATCH] AP_Arming: check pin arming_checks --- libraries/AP_Arming/AP_Arming.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index 70cd30b097..35153bb1af 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #if HAL_MAX_CAN_PROTOCOL_DRIVERS @@ -852,6 +853,27 @@ bool AP_Arming::system_checks(bool report) return false; } + if (check_enabled(ARMING_CHECK_PARAMETERS)) { + auto *rpm = AP::rpm(); + char buffer[MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1] {}; + if (rpm && !rpm->arming_checks(sizeof(buffer), buffer)) { + check_failed(ARMING_CHECK_PARAMETERS, report, "%s", buffer); + return false; + } + auto *relay = AP::relay(); + if (relay && !relay->arming_checks(sizeof(buffer), buffer)) { + check_failed(ARMING_CHECK_PARAMETERS, report, "%s", buffer); + return false; + } +#if HAL_PARACHUTE_ENABLED + auto *chute = AP::parachute(); + if (chute && !chute->arming_checks(sizeof(buffer), buffer)) { + check_failed(ARMING_CHECK_PARAMETERS, report, "%s", buffer); + return false; + } +#endif + } + return true; }