@@ -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