@@ -942,13 +942,13 @@ void Gps::parseUbxMessage() {
942
942
break ;
943
943
#endif
944
944
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" ,
946
946
mGpsBuffer .navTimeUtc .iTow , mGpsBuffer .navTimeUtc .tAcc , mGpsBuffer .navTimeUtc .nano ,
947
947
mGpsBuffer .navTimeUtc .year , mGpsBuffer .navTimeUtc .month , mGpsBuffer .navTimeUtc .day ,
948
948
mGpsBuffer .navTimeUtc .hour , mGpsBuffer .navTimeUtc .minute , mGpsBuffer .navTimeUtc .sec ,
949
949
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
952
952
&& mGpsBuffer .navTimeUtc .tAcc < (50 * 1000 * 1000 /* 50ms */ )
953
953
&& (mLastTimeTimeSet == 0
954
954
|| (mLastTimeTimeSet + (2 * 60 * 1000 /* 2 minutes */ )) < millis ())) {
@@ -961,8 +961,12 @@ void Gps::parseUbxMessage() {
961
961
t.tm_sec = mGpsBuffer .navTimeUtc .sec ;
962
962
const time_t gpsTime = mktime (&t);
963
963
const struct timeval now = {.tv_sec = gpsTime};
964
+ String oldTime = ObsUtils::dateTimeToString ();
964
965
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 ());
966
970
if (mLastTimeTimeSet == 0 ) {
967
971
mLastTimeTimeSet = millis ();
968
972
// This triggers another NAV-TIMEUTC message!
0 commit comments