mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-24 07:09:48 +08:00
Commander: force disabling the arm stick gesture when arm switch is in use
This commit is contained in:
@@ -1797,6 +1797,7 @@ Commander::run()
|
||||
|
||||
const param_t param_airmode = param_find("MC_AIRMODE");
|
||||
const param_t param_man_arm_gesture = param_find("MAN_ARM_GESTURE");
|
||||
const param_t param_rc_map_arm_sw = param_find("RC_MAP_ARM_SW");
|
||||
|
||||
/* initialize */
|
||||
led_init();
|
||||
@@ -1915,7 +1916,25 @@ Commander::run()
|
||||
|
||||
_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 */
|
||||
// disable arm gesture if an arm switch is configured
|
||||
if (param_man_arm_gesture != PARAM_INVALID && param_rc_map_arm_sw != PARAM_INVALID) {
|
||||
int32_t man_arm_gesture = 0, rc_map_arm_sw = 0;
|
||||
param_get(param_man_arm_gesture, &man_arm_gesture);
|
||||
param_get(param_rc_map_arm_sw, &rc_map_arm_sw);
|
||||
|
||||
if (rc_map_arm_sw > 0 && man_arm_gesture == 1) {
|
||||
man_arm_gesture = 0; // disable arm gesture
|
||||
param_set(param_man_arm_gesture, &man_arm_gesture);
|
||||
mavlink_log_critical(&_mavlink_log_pub, "Arm stick gesture disabled if arm switch in use\t")
|
||||
/* EVENT
|
||||
* @description <param>MAN_ARM_GESTURE</param> is now set to disable arm/disarm stick gesture.
|
||||
*/
|
||||
events::send(events::ID("rc_update_arm_stick_gesture_disabled_with_switch"), {events::Log::Info, events::LogInternal::Disabled},
|
||||
"Arm stick gesture disabled if arm switch in use");
|
||||
}
|
||||
}
|
||||
|
||||
// check for unsafe Airmode settings: yaw airmode requires disabling the stick arm gesture
|
||||
if (param_airmode != PARAM_INVALID && param_man_arm_gesture != PARAM_INVALID) {
|
||||
int32_t airmode = 0, man_arm_gesture = 0;
|
||||
param_get(param_airmode, &airmode);
|
||||
|
||||
Reference in New Issue
Block a user