diff options
-rw-r--r-- | libgpsd_core.c | 14 | ||||
-rw-r--r-- | tsip.c | 12 |
2 files changed, 17 insertions, 9 deletions
diff --git a/libgpsd_core.c b/libgpsd_core.c index bf3ce5cc..cb45d79d 100644 --- a/libgpsd_core.c +++ b/libgpsd_core.c @@ -383,13 +383,13 @@ static void gpsd_transit_fix_dump(struct gps_device_t *session, struct tm tm; time_t intfixtime; - intfixtime = (time_t)session->gpsdata.fix.time; - (void)gmtime_r(&intfixtime, &tm); - tm.tm_mon++; - tm.tm_year %= 100; - if ((tm.tm_mday < 1) || (tm.tm_mday > 31) || (tm.tm_mon < 1) || - (tm.tm_mon > 12) || (tm.tm_year < 0) || (tm.tm_year > 99)) - tm.tm_mday = tm.tm_mon = tm.tm_year = 0; + tm.tm_mday = tm.tm_mon = tm.tm_year = 0; + if (isnan(session->gpsdata.fix.time)==0) { + intfixtime = (time_t)session->gpsdata.fix.time; + (void)gmtime_r(&intfixtime, &tm); + tm.tm_mon++; + tm.tm_year %= 100; + } /*@ -usedef @*/ (void)snprintf(bufp, len, "$GPRMC,%02d%02d%02d,%c,%09.4f,%c,%010.4f,%c,%.4f,%.3f,%02d%02d%02d,,", @@ -298,7 +298,11 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) gpstime_to_unix((int)session->driver.tsip.gps_week, f2) - session->context->leap_seconds; mask |= TIME_SET; } - gpsd_report(LOG_PROG, "GPS LLA %f %f %f\n",session->gpsdata.fix.latitude,session->gpsdata.fix.longitude,session->gpsdata.fix.altitude); + gpsd_report(LOG_PROG, "GPS LLA %f %f %f %f\n", + session->gpsdata.fix.time, + session->gpsdata.fix.latitude, + session->gpsdata.fix.longitude, + session->gpsdata.fix.altitude); mask |= LATLON_SET | ALTITUDE_SET | CYCLE_START_SET; break; case 0x4b: /* Machine/Code ID and Additional Status */ @@ -513,7 +517,11 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) gpstime_to_unix((int)session->driver.tsip.gps_week, f1) - session->context->leap_seconds; mask |= TIME_SET; } - gpsd_report(LOG_INF, "GPS DP LLA %f %f %f\n",session->gpsdata.fix.latitude,session->gpsdata.fix.longitude,session->gpsdata.fix.altitude); + gpsd_report(LOG_INF, "GPS DP LLA %f %f %f %f\n", + session->gpsdata.fix.time, + session->gpsdata.fix.latitude, + session->gpsdata.fix.longitude, + session->gpsdata.fix.altitude); mask |= LATLON_SET | ALTITUDE_SET | CYCLE_START_SET; break; case 0x8f: /* Super Packet. Well... */ |