Make disarming via AUX switch independent of throttle value configurable

Conflicts:
	src/cli.c
	src/config.c
	src/mw.c
	src/mw.h
This commit is contained in:
Andreas Tacke 2014-09-01 12:09:46 +02:00 committed by Dominic Clifton
parent b4620235dd
commit 275089eca1
6 changed files with 13 additions and 6 deletions

View File

@ -277,7 +277,8 @@ static void resetConf(void)
masterConfig.inputFilteringMode = INPUT_FILTERING_DISABLED;
masterConfig.retarded_arm = 0; // disable arm/disarm on roll left/right
masterConfig.retarded_arm = 0;
masterConfig.disarm_kill_switch = 1;
masterConfig.small_angle = 25;
masterConfig.airplaneConfig.flaps_speed = 0;

View File

@ -59,7 +59,8 @@ typedef struct master_t {
rxConfig_t rxConfig;
inputFilteringMode_e inputFilteringMode; // Use hardware input filtering, e.g. for OrangeRX PPM/PWM receivers.
uint8_t retarded_arm; // allow disarsm/arm on throttle down + roll left/right
uint8_t retarded_arm; // allow disarm/arm on throttle down + roll left/right
uint8_t disarm_kill_switch; // allow disarm via AUX switch regardless of throttle value
uint8_t small_angle;
airplaneConfig_t airplaneConfig;

View File

@ -67,7 +67,7 @@ throttleStatus_e calculateThrottleStatus(rxConfig_t *rxConfig, uint16_t deadband
return THROTTLE_HIGH;
}
void processRcStickPositions(rxConfig_t *rxConfig, throttleStatus_e throttleStatus, uint32_t *activate, bool retarded_arm)
void processRcStickPositions(rxConfig_t *rxConfig, throttleStatus_e throttleStatus, uint32_t *activate, bool retarded_arm, bool disarm_kill_switch)
{
static uint8_t rcDelayCommand; // this indicates the number of time (multiple of RC measurement at 50Hz) the sticks must be maintained to run or switch off motors
static uint8_t rcSticks; // this hold sticks position for command combos
@ -103,7 +103,11 @@ void processRcStickPositions(rxConfig_t *rxConfig, throttleStatus_e throttleStat
} else {
// Disarming via ARM BOX
if (ARMING_FLAG(ARMED)) {
mwDisarm();
if (disarm_kill_switch) {
mwDisarm();
} else if (throttleStatus == THROTTLE_LOW) {
mwDisarm();
}
}
}
}

View File

@ -91,7 +91,7 @@ extern int16_t rcCommand[4];
bool areSticksInApModePosition(uint16_t ap_mode);
throttleStatus_e calculateThrottleStatus(rxConfig_t *rxConfig, uint16_t deadband3d_throttle);
void processRcStickPositions(rxConfig_t *rxConfig, throttleStatus_e throttleStatus, uint32_t *activate, bool retarded_arm);
void processRcStickPositions(rxConfig_t *rxConfig, throttleStatus_e throttleStatus, uint32_t *activate, bool retarded_arm, bool disarm_kill_switch);
void updateRcOptions(uint32_t *activate);

View File

@ -200,6 +200,7 @@ const clivalue_t valueTable[] = {
{ "servo_pwm_rate", VAR_UINT16 | MASTER_VALUE, &masterConfig.servo_pwm_rate, 50, 498 },
{ "retarded_arm", VAR_UINT8 | MASTER_VALUE, &masterConfig.retarded_arm, 0, 1 },
{ "disarm_kill_switch", VAR_UINT8 | MASTER_VALUE, &masterConfig.disarm_kill_switch, 0, 1 },
{ "small_angle", VAR_UINT8 | MASTER_VALUE, &masterConfig.small_angle, 0, 180 },
{ "flaps_speed", VAR_UINT8 | MASTER_VALUE, &masterConfig.airplaneConfig.flaps_speed, 0, 100 },

View File

@ -465,7 +465,7 @@ void processRx(void)
resetErrorGyro();
}
processRcStickPositions(&masterConfig.rxConfig, throttleStatus, currentProfile->activate, masterConfig.retarded_arm);
processRcStickPositions(&masterConfig.rxConfig, throttleStatus, currentProfile->activate, masterConfig.retarded_arm, masterConfig.disarm_kill_switch);
if (feature(FEATURE_INFLIGHT_ACC_CAL)) {
updateInflightCalibrationState();