1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 19:40:31 +03:00

Improve GPS Rescue Pitch smoothing and disarming (#12343)

This commit is contained in:
ctzsnooze 2023-03-08 16:10:25 +11:00 committed by GitHub
parent f0e7b21264
commit e957f0dfa6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 255 additions and 193 deletions

View file

@ -177,10 +177,16 @@ void processRcStickPositions(void)
resetTryingToArm();
// Disarming via ARM BOX
resetArmingDisabled();
const bool switchFailsafe = (failsafeIsActive() && (IS_RC_MODE_ACTIVE(BOXFAILSAFE) || IS_RC_MODE_ACTIVE(BOXGPSRESCUE)));
if (ARMING_FLAG(ARMED) && (failsafeIsReceivingRxData() || switchFailsafe)) {
const bool boxFailsafeSwitchIsOn = IS_RC_MODE_ACTIVE(BOXFAILSAFE);
if (ARMING_FLAG(ARMED) && (failsafeIsReceivingRxData() || boxFailsafeSwitchIsOn)) {
// in a true signal loss situation, allow disarm only once we regain validated RxData (failsafeIsReceivingRxData = true),
// to avoid potentially false disarm signals soon after link recover
// Note that BOXFAILSAFE will also drive failsafeIsReceivingRxData false (immediately at start or end)
// That's why we explicitly allow disarm here BOXFAILSAFE switch is active
// Note that BOXGPSRESCUE mode does not trigger failsafe - we can always disarm in that mode
rcDisarmTicks++;
if (rcDisarmTicks > 3) {
// require three duplicate disarm values in a row before we disarm
disarm(DISARM_REASON_SWITCH);
}
}