diff --git a/src/modules/commander/arm_auth.cpp b/src/modules/commander/arm_auth.cpp index de0a310276..70291d03e7 100644 --- a/src/modules/commander/arm_auth.cpp +++ b/src/modules/commander/arm_auth.cpp @@ -179,9 +179,11 @@ uint8_t arm_auth_check() return vehicle_command_ack_s::VEHICLE_RESULT_DENIED; } -void arm_auth_update(hrt_abstime now) +void arm_auth_update(hrt_abstime now, bool param_update) { - param_get(param_arm_parameters, (int32_t*)&arm_parameters); + if (param_update) { + param_get(param_arm_parameters, (int32_t*)&arm_parameters); + } switch (state) { case ARM_AUTH_WAITING_AUTH: diff --git a/src/modules/commander/arm_auth.h b/src/modules/commander/arm_auth.h index 5e28fa64ac..96aaab0327 100644 --- a/src/modules/commander/arm_auth.h +++ b/src/modules/commander/arm_auth.h @@ -45,6 +45,6 @@ enum arm_auth_methods { }; void arm_auth_init(orb_advert_t *mav_log_pub, uint8_t *system_id); -void arm_auth_update(hrt_abstime now); +void arm_auth_update(hrt_abstime now, bool param_update = true); uint8_t arm_auth_check(); enum arm_auth_methods arm_auth_method_get(); diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 29721bd8c7..f7eb1f743a 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -1704,9 +1704,10 @@ Commander::run() arming_ret = TRANSITION_NOT_CHANGED; /* update parameters */ - orb_check(param_changed_sub, &updated); + bool params_updated = false; + orb_check(param_changed_sub, ¶ms_updated); - if (updated || param_init_forced) { + if (params_updated || param_init_forced) { /* parameters changed */ struct parameter_update_s param_changed; @@ -3189,7 +3190,7 @@ Commander::run() have_taken_off_since_arming = false; } - arm_auth_update(now); + arm_auth_update(now, params_updated || param_init_forced); usleep(COMMANDER_MONITORING_INTERVAL); }