Merge pull request #7254 from TonyBlit/gps_crosstrack_checks

Sanity checks flyaway/stalled only done in crosstrack phase
This commit is contained in:
Michael Keller 2018-12-21 20:55:28 +13:00 committed by GitHub
commit 27dda737ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 8 deletions

View File

@ -353,17 +353,19 @@ static void performSanityChecks()
previousTimeUs = currentTimeUs;
secondsStalled = constrain(secondsStalled + ((rescueState.sensor.groundSpeed < 150) ? 1 : -1), 0, 20);
if (rescueState.phase == RESCUE_CROSSTRACK) {
secondsStalled = constrain(secondsStalled + ((rescueState.sensor.groundSpeed < 150) ? 1 : -1), 0, 20);
if (secondsStalled == 20) {
rescueState.failure = RESCUE_STALLED;
}
if (secondsStalled == 20) {
rescueState.failure = RESCUE_STALLED;
}
secondsFlyingAway = constrain(secondsFlyingAway + ((lastDistanceToHomeM < rescueState.sensor.distanceToHomeM) ? 1 : -1), 0, 10);
lastDistanceToHomeM = rescueState.sensor.distanceToHomeM;
secondsFlyingAway = constrain(secondsFlyingAway + ((lastDistanceToHomeM < rescueState.sensor.distanceToHomeM) ? 1 : -1), 0, 10);
lastDistanceToHomeM = rescueState.sensor.distanceToHomeM;
if (secondsFlyingAway == 10) {
rescueState.failure = RESCUE_FLYAWAY;
if (secondsFlyingAway == 10) {
rescueState.failure = RESCUE_FLYAWAY;
}
}
secondsLowSats = constrain(secondsLowSats + ((rescueState.sensor.numSat < gpsRescueConfig()->minSats) ? 1 : -1), 0, 10);