fixed all comments of arm button review

This commit is contained in:
Matthias Grob
2016-11-28 11:29:58 +01:00
committed by Lorenz Meier
parent aa984edd90
commit 8a75827d6a
2 changed files with 22 additions and 18 deletions
+20 -16
View File
@@ -2569,7 +2569,7 @@ int commander_thread_main(int argc, char *argv[])
internal_state.main_state == commander_state_s::MAIN_STATE_STAB || internal_state.main_state == commander_state_s::MAIN_STATE_STAB ||
internal_state.main_state == commander_state_s::MAIN_STATE_RATTITUDE || internal_state.main_state == commander_state_s::MAIN_STATE_RATTITUDE ||
land_detector.landed) && land_detector.landed) &&
((sp_man.r < -STICK_ON_OFF_LIMIT && sp_man.z < 0.1f) || ((bool)arm_switch_is_button && sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_ON)) ) { ((sp_man.r < -STICK_ON_OFF_LIMIT && sp_man.z < 0.1f) || (arm_switch_is_button == 1 && sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_ON)) ) {
if (stick_off_counter > rc_arm_hyst) { if (stick_off_counter > rc_arm_hyst) {
/* disarm to STANDBY if ARMED or to STANDBY_ERROR if ARMED_ERROR */ /* disarm to STANDBY if ARMED or to STANDBY_ERROR if ARMED_ERROR */
@@ -2704,23 +2704,27 @@ int commander_thread_main(int argc, char *argv[])
} }
/* no else case: do not change lockdown flag in unconfigured case */ /* no else case: do not change lockdown flag in unconfigured case */
/* check arm switch */ /* check arm switch if it is not used as button */
/* we change the switch from disarm to arm */ if (arm_switch_is_button == 0) {
if (arm_switch_is_button == 0 && _last_sp_man_arm_switch == manual_control_setpoint_s::SWITCH_POS_OFF && sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_ON) { /* transition of the switch from disarm to arm */
if (TRANSITION_CHANGED != arm_disarm(true, &mavlink_log_pub, "arm switch")) { if (_last_sp_man_arm_switch == manual_control_setpoint_s::SWITCH_POS_OFF &&
mavlink_log_info(&mavlink_log_pub, "arming failed"); sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_ON) {
} else { if (TRANSITION_CHANGED != arm_disarm(true, &mavlink_log_pub, "arm switch")) {
arming_state_changed = true; mavlink_log_info(&mavlink_log_pub, "arming by switch failed");
} } else {
/* we change the switch from arm to disarm */ arming_state_changed = true;
} else if (arm_switch_is_button == 0 && _last_sp_man_arm_switch == manual_control_setpoint_s::SWITCH_POS_ON && sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_OFF) { }
if (TRANSITION_CHANGED != arm_disarm(false, &mavlink_log_pub, "arm switch")) { /* transition of the switch from arm to disarm */
mavlink_log_info(&mavlink_log_pub, "rejected disarm"); } else if (_last_sp_man_arm_switch == manual_control_setpoint_s::SWITCH_POS_ON &&
} else { sp_man.arm_switch == manual_control_setpoint_s::SWITCH_POS_OFF) {
arming_state_changed = true; if (TRANSITION_CHANGED != arm_disarm(false, &mavlink_log_pub, "arm switch")) {
mavlink_log_info(&mavlink_log_pub, "rejected disarming by switch");
} else {
arming_state_changed = true;
}
} }
/* no else case: do not change arming here if arm switch unconfigured */
} }
/* no else case: do not change arming here if arm switch unconfigured */
_last_sp_man_arm_switch = sp_man.arm_switch; _last_sp_man_arm_switch = sp_man.arm_switch;
} else { } else {
if (!status_flags.rc_input_blocked && !status.rc_signal_lost) { if (!status_flags.rc_input_blocked && !status.rc_signal_lost) {
+2 -2
View File
@@ -280,7 +280,7 @@ PARAM_DEFINE_INT32(COM_DISARM_LAND, 0);
PARAM_DEFINE_INT32(COM_ARM_WO_GPS, 1); PARAM_DEFINE_INT32(COM_ARM_WO_GPS, 1);
/** /**
* Use arm switch is only a button * Arm switch is only a button
* *
* The default uses the arm switch as real switch. * The default uses the arm switch as real switch.
* If parameter set button gets handled like stick arming. * If parameter set button gets handled like stick arming.
@@ -289,7 +289,7 @@ PARAM_DEFINE_INT32(COM_ARM_WO_GPS, 1);
* @min 0 * @min 0
* @max 1 * @max 1
* @value 0 Arm switch is a switch that stays on when armed * @value 0 Arm switch is a switch that stays on when armed
* @value 1 Arm switch is a button that only triggers arming * @value 1 Arm switch is a button that only triggers arming and disarming
*/ */
PARAM_DEFINE_INT32(COM_ARM_SWISBTN, 0); PARAM_DEFINE_INT32(COM_ARM_SWISBTN, 0);