From 6566c4f15e1e2b1e66cc7451f8e3c72688faf88a Mon Sep 17 00:00:00 2001 From: geeksville Date: Thu, 18 Jun 2020 14:09:13 -0700 Subject: [PATCH] don't send bogus latitudes --- src/gps/UBloxGPS.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gps/UBloxGPS.cpp b/src/gps/UBloxGPS.cpp index 472dba1c8..1e4bad8bc 100644 --- a/src/gps/UBloxGPS.cpp +++ b/src/gps/UBloxGPS.cpp @@ -117,7 +117,9 @@ The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of s altitude = ublox.getAltitude() / 1000; // in mm convert to meters DEBUG_MSG("new gps pos lat=%f, lon=%f, alt=%d\n", latitude * 1e-7, longitude * 1e-7, altitude); - hasValidLocation = (latitude != 0) && (longitude != 0); // bogus lat lon is reported as 0 or 0 (can be bogus just for one) + // bogus lat lon is reported as 0 or 0 (can be bogus just for one) + // Also: apparently when the GPS is initially reporting lock it can output a bogus latitude > 90 deg! + hasValidLocation = (latitude != 0) && (longitude != 0) && (latitude <= 900000000 && latitude >= -900000000); if (hasValidLocation) { wantNewLocation = false; notifyObservers(NULL);