Skip to content

Commit a7c3f68

Browse files
authored
Be more tolerant when setting time (#242) (#244)
- TOF sensor reading cold delay to 75ms, so allow 150ms delay for setting time - log old and new time
1 parent 6ddf66a commit a7c3f68

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/gps.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -942,13 +942,13 @@ void Gps::parseUbxMessage() {
942942
break;
943943
#endif
944944
case (uint16_t) UBX_MSG::NAV_TIMEUTC: {
945-
log_i("TIMEUTC: iTOW: %u acc: %u nano: %d %04u-%02u-%02uT%02u:%02u:%02u valid 0x%02x delay %dms",
945+
log_i("TIMEUTC: iTOW: %u acc: %uns nano: %d %04u-%02u-%02uT%02u:%02u:%02u valid 0x%02x delay %dms",
946946
mGpsBuffer.navTimeUtc.iTow, mGpsBuffer.navTimeUtc.tAcc, mGpsBuffer.navTimeUtc.nano,
947947
mGpsBuffer.navTimeUtc.year, mGpsBuffer.navTimeUtc.month, mGpsBuffer.navTimeUtc.day,
948948
mGpsBuffer.navTimeUtc.hour, mGpsBuffer.navTimeUtc.minute, mGpsBuffer.navTimeUtc.sec,
949949
mGpsBuffer.navTimeUtc.valid, delayMs);
950-
if ((mGpsBuffer.navTimeUtc.valid & 0x07) == 0x07 // all valid, UTC comes last
951-
&& delayMs < 50
950+
if ((mGpsBuffer.navTimeUtc.valid & 0x04) == 0x04 // UTC valid, it is the last one
951+
&& delayMs < 150
952952
&& mGpsBuffer.navTimeUtc.tAcc < (50 * 1000 * 1000 /* 50ms */)
953953
&& (mLastTimeTimeSet == 0
954954
|| (mLastTimeTimeSet + (2 * 60 * 1000 /* 2 minutes */)) < millis())) {
@@ -961,8 +961,12 @@ void Gps::parseUbxMessage() {
961961
t.tm_sec = mGpsBuffer.navTimeUtc.sec;
962962
const time_t gpsTime = mktime(&t);
963963
const struct timeval now = {.tv_sec = gpsTime};
964+
String oldTime = ObsUtils::dateTimeToString();
964965
settimeofday(&now, nullptr);
965-
log_i("Time set %ld: %s.\n", gpsTime, ObsUtils::dateTimeToString(gpsTime).c_str());
966+
String newTime = ObsUtils::dateTimeToString();
967+
log_i("Time set %ld: %s. %s -> %s\n",
968+
gpsTime, ObsUtils::dateTimeToString(gpsTime).c_str(),
969+
oldTime.c_str(), newTime.c_str());
966970
if (mLastTimeTimeSet == 0) {
967971
mLastTimeTimeSet = millis();
968972
// This triggers another NAV-TIMEUTC message!

0 commit comments

Comments
 (0)