From b943bd72ab20ecab155976d74986926d1c0349ea Mon Sep 17 00:00:00 2001 From: Jacob Dahl <37091262+dakejahl@users.noreply.github.com> Date: Thu, 7 Nov 2019 07:03:59 -0800 Subject: [PATCH] commander: Added a parameter to control the timeout period for disarming after the kill switch is engaged. (#13325) --- src/modules/commander/Commander.cpp | 3 ++- src/modules/commander/Commander.hpp | 2 ++ src/modules/commander/commander_params.c | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index 3582db6f38..9f469fbb1d 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -558,7 +558,6 @@ Commander::Commander() : _failure_detector(this) { _auto_disarm_landed.set_hysteresis_time_from(false, _param_com_disarm_preflight.get() * 1_s); - _auto_disarm_killed.set_hysteresis_time_from(false, 5_s); // We want to accept RC inputs as default status.rc_input_mode = vehicle_status_s::RC_IN_MODE_DEFAULT; @@ -1549,6 +1548,8 @@ Commander::run() param_get(_param_takeoff_finished_action, &takeoff_complete_act); + _auto_disarm_killed.set_hysteresis_time_from(false, _param_com_kill_disarm.get() * 1_s); + /* check for unsafe Airmode settings: yaw airmode requires the use of an arming switch */ if (_param_airmode != PARAM_INVALID && _param_rc_map_arm_switch != PARAM_INVALID) { param_get(_param_airmode, &airmode); diff --git a/src/modules/commander/Commander.hpp b/src/modules/commander/Commander.hpp index 30f8343bbb..d304fdd258 100644 --- a/src/modules/commander/Commander.hpp +++ b/src/modules/commander/Commander.hpp @@ -149,6 +149,8 @@ private: (ParamInt) _param_com_prearm_mode, (ParamInt) _param_com_mot_test_en, + (ParamFloat) _param_com_kill_disarm, + (ParamInt) _param_cbrk_supply_chk, (ParamInt) _param_cbrk_usb_chk, (ParamInt) _param_cbrk_airspd_chk, diff --git a/src/modules/commander/commander_params.c b/src/modules/commander/commander_params.c index 49980b7283..c1e3354ebf 100644 --- a/src/modules/commander/commander_params.c +++ b/src/modules/commander/commander_params.c @@ -977,3 +977,14 @@ PARAM_DEFINE_INT32(COM_PREARM_MODE, 1); * @group Commander */ PARAM_DEFINE_INT32(COM_MOT_TEST_EN, 1); + +/** + * Timeout value for disarming when kill switch is engaged + * + * @group Commander + * @unit s + * @min 0.0 + * @max 30.0 + * @increment 0.1 + */ +PARAM_DEFINE_FLOAT(COM_KILL_DISARM, 5.0f); \ No newline at end of file