From 7b3a6434de632022256e98b73f24b389beb95d6e Mon Sep 17 00:00:00 2001 From: Bob Long Date: Thu, 20 Feb 2025 12:21:54 +1100 Subject: [PATCH] AP_Arming: add reset_all_aux_auths --- libraries/AP_Arming/AP_Arming.cpp | 21 +++++++++++++++++++++ libraries/AP_Arming/AP_Arming.h | 1 + 2 files changed, 22 insertions(+) diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index 7e6150c858..78713fb304 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -1464,6 +1464,27 @@ void AP_Arming::set_aux_auth_failed(uint8_t auth_id, const char* fail_msg) } } +void AP_Arming::reset_all_aux_auths() +{ + WITH_SEMAPHORE(aux_auth_sem); + + // clear all auxiliary authorisation ids + aux_auth_count = 0; + // clear any previous allocation errors + aux_auth_error = false; + + // reset states for all auxiliary authorisation ids + for (uint8_t i = 0; i < aux_auth_count_max; i++) { + aux_auth_state[i] = AuxAuthStates::NO_RESPONSE; + } + + // free up the failure message buffer + if (aux_auth_fail_msg != nullptr) { + free(aux_auth_fail_msg); + aux_auth_fail_msg = nullptr; + } +} + bool AP_Arming::aux_auth_checks(bool display_failure) { // handle error cases diff --git a/libraries/AP_Arming/AP_Arming.h b/libraries/AP_Arming/AP_Arming.h index 1ee68e9349..bd647cd355 100644 --- a/libraries/AP_Arming/AP_Arming.h +++ b/libraries/AP_Arming/AP_Arming.h @@ -129,6 +129,7 @@ public: bool get_aux_auth_id(uint8_t& auth_id); void set_aux_auth_passed(uint8_t auth_id); void set_aux_auth_failed(uint8_t auth_id, const char* fail_msg); + void reset_all_aux_auths(); #endif static const struct AP_Param::GroupInfo var_info[];