mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-08-06 04:06:12 +00:00
refactor(nav): single GPS-position accessor + reset COG window after a gap
UITask::currentLocation() becomes the one place that reads the LocationProvider fix. TrailScreen::ownPos, CompassScreen::gpsValid and NearbyScreen::refresh now delegate to it instead of each duplicating the getLocationProvider/isValid dance (and the ENV_INCLUDE_GPS guard). pushCogFix now restarts the course-over-ground ring when the gap since the previous fix exceeds 15 s: after losing GPS for a while, a window spanning the stale old fixes would compute a bogus "teleport" heading. The last-good heading is kept for display continuity. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -13,14 +13,7 @@
|
||||
class CompassScreen : public UIScreen {
|
||||
UITask* _task;
|
||||
|
||||
static bool gpsValid() {
|
||||
#if ENV_INCLUDE_GPS == 1
|
||||
LocationProvider* loc = sensors.getLocationProvider();
|
||||
return loc && loc->isValid();
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
bool gpsValid() const { int32_t lat, lon; return _task->currentLocation(lat, lon); }
|
||||
|
||||
// Midpoint circle (DisplayDriver has no circle primitive).
|
||||
static void drawCircle(DisplayDriver& d, int cx, int cy, int r) {
|
||||
|
||||
Reference in New Issue
Block a user