Browse Source

Sync time with GPS every 30 minutes

Unless your GPS is being spoofed there isn't really a downside to
syncing more often with GPS.

I understand the RTC is very stable, but especially with powersaving now
clock drift is worse, we should sync more often.
pull/1350/head
Wessel Nieboer 5 months ago
committed by Wessel Nieboer
parent
commit
10f2fecd45
No known key found for this signature in database GPG Key ID: 929C8E45E33B5FD2
  1. 7
      src/helpers/sensors/MicroNMEALocationProvider.h

7
src/helpers/sensors/MicroNMEALocationProvider.h

@ -43,6 +43,8 @@ class MicroNMEALocationProvider : public LocationProvider {
int _pin_en;
long next_check = 0;
long time_valid = 0;
unsigned long _last_time_sync = 0;
static const unsigned long TIME_SYNC_INTERVAL = 1800000; // Re-sync every 30 minutes
public :
MicroNMEALocationProvider(Stream& ser, mesh::RTCClock* clock = NULL, int pin_reset = GPS_RESET, int pin_en = GPS_EN,RefCountedDigitalPin* peripher_power=NULL) :
@ -129,10 +131,15 @@ public :
if (millis() > next_check) {
next_check = millis() + 1000;
// Re-enable time sync periodically when GPS has valid fix
if (!_time_sync_needed && _clock != NULL && (millis() - _last_time_sync) > TIME_SYNC_INTERVAL) {
_time_sync_needed = true;
}
if (_time_sync_needed && time_valid > 2) {
if (_clock != NULL) {
_clock->setCurrentTime(getTimestamp());
_time_sync_needed = false;
_last_time_sync = millis();
}
}
if (isValid()) {

Loading…
Cancel
Save