From c6ae66dcaa255173f31f34707eb1175fcf0df34b Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Thu, 14 Dec 2023 21:03:21 -0600 Subject: [PATCH] Add fallthrough option to avoid a GPS stuck off. --- src/gps/GPS.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gps/GPS.cpp b/src/gps/GPS.cpp index d5cd9b682..60eeeb3bb 100644 --- a/src/gps/GPS.cpp +++ b/src/gps/GPS.cpp @@ -575,15 +575,20 @@ void GPS::setAwake(bool on) if ((int32_t)getSleepTime() - averageLockTime > 15 * 60 * 1000) { // 15 minutes is probably long enough to make a complete poweroff worth it. setGPSPower(on, false, getSleepTime() - averageLockTime); + return; } else if ((int32_t)getSleepTime() - averageLockTime > 10000) { // 10 seconds is enough for standby #ifdef GPS_UC6580 setGPSPower(on, false, getSleepTime() - averageLockTime); #else setGPSPower(on, true, getSleepTime() - averageLockTime); #endif - } else if (averageLockTime > 20000) { + return; + } + if (averageLockTime > 20000) { averageLockTime -= 1000; // eventually want to sleep again. } + if (on) + setGPSPower(true, true, 0); // make sure we don't have a fallthrough where GPS is stuck off } }