From a47ac7430b1609e468c9df0f553129bafc94f35d Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Thu, 16 Jun 2022 17:13:47 +0900 Subject: [PATCH] AP_Arming: add mount pre-arm check --- libraries/AP_Arming/AP_Arming.cpp | 20 ++++++++++++++++++++ libraries/AP_Arming/AP_Arming.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index 5fc0ffb306..131b8fd1e4 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #if HAL_MAX_CAN_PROTOCOL_DRIVERS #include @@ -1141,6 +1142,24 @@ bool AP_Arming::osd_checks(bool display_failure) const return true; } +bool AP_Arming::mount_checks(bool display_failure) const +{ +#if HAL_MOUNT_ENABLED + if ((checks_to_perform & ARMING_CHECK_ALL) || (checks_to_perform & ARMING_CHECK_CAMERA)) { + AP_Mount *mount = AP::mount(); + if (mount == nullptr) { + return true; + } + char fail_msg[MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1] = {}; + if (!mount->pre_arm_checks(fail_msg, sizeof(fail_msg))) { + check_failed(ARMING_CHECK_CAMERA, display_failure, "Mount: %s", fail_msg); + return false; + } + } +#endif + return true; +} + bool AP_Arming::fettec_checks(bool display_failure) const { #if AP_FETTEC_ONEWIRE_ENABLED @@ -1323,6 +1342,7 @@ bool AP_Arming::pre_arm_checks(bool report) & proximity_checks(report) & camera_checks(report) & osd_checks(report) + & mount_checks(report) & fettec_checks(report) & visodom_checks(report) & aux_auth_checks(report) diff --git a/libraries/AP_Arming/AP_Arming.h b/libraries/AP_Arming/AP_Arming.h index 2db142aa27..fa8a8af57b 100644 --- a/libraries/AP_Arming/AP_Arming.h +++ b/libraries/AP_Arming/AP_Arming.h @@ -185,6 +185,8 @@ protected: bool osd_checks(bool display_failure) const; + bool mount_checks(bool display_failure) const; + bool aux_auth_checks(bool display_failure); bool generator_checks(bool report) const;