1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-18 08:54:15 +01:00

Merged in mindnever/librepilot/LP-309-accessory-switch-arming-timeout-fix (pull request #242)

LP-309 accessory switch arming timeout fix
This commit is contained in:
Lalanne Laurent 2016-05-15 22:26:37 +02:00
commit e79e44bb36

View File

@ -195,12 +195,27 @@ void armHandler(bool newinit, FrameType_t frameType)
bool manualArm = false;
bool manualDisarm = false;
if (armingInputLevel <= -ARMED_THRESHOLD) {
static FlightModeSettingsArmingOptions previousArmingSettings = -1;
static float previousArmingInputLevel = 0.0f;
if (previousArmingSettings != settings.Arming) {
previousArmingSettings = settings.Arming;
previousArmingInputLevel = 0.0f;
}
// ignore previous arming input level if not transitioning from fully ARMED/DISARMED states.
if ((armState != ARM_STATE_DISARMED) && (armState != ARM_STATE_ARMED)) {
previousArmingInputLevel = 0.0f;
}
if ((armingInputLevel <= -ARMED_THRESHOLD) && (previousArmingInputLevel > -ARMED_THRESHOLD)) {
manualArm = true;
} else if (armingInputLevel >= +ARMED_THRESHOLD) {
} else if ((armingInputLevel >= +ARMED_THRESHOLD) && (previousArmingInputLevel < +ARMED_THRESHOLD)) {
manualDisarm = true;
}
previousArmingInputLevel = armingInputLevel;
switch (armState) {
case ARM_STATE_DISARMED:
setArmedIfChanged(FLIGHTSTATUS_ARMED_DISARMED);