mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +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:
commit
e79e44bb36
@ -195,12 +195,27 @@ void armHandler(bool newinit, FrameType_t frameType)
|
|||||||
bool manualArm = false;
|
bool manualArm = false;
|
||||||
bool manualDisarm = 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;
|
manualArm = true;
|
||||||
} else if (armingInputLevel >= +ARMED_THRESHOLD) {
|
} else if ((armingInputLevel >= +ARMED_THRESHOLD) && (previousArmingInputLevel < +ARMED_THRESHOLD)) {
|
||||||
manualDisarm = true;
|
manualDisarm = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
previousArmingInputLevel = armingInputLevel;
|
||||||
|
|
||||||
switch (armState) {
|
switch (armState) {
|
||||||
case ARM_STATE_DISARMED:
|
case ARM_STATE_DISARMED:
|
||||||
setArmedIfChanged(FLIGHTSTATUS_ARMED_DISARMED);
|
setArmedIfChanged(FLIGHTSTATUS_ARMED_DISARMED);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user