summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgpsd_core.c14
-rw-r--r--tsip.c12
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,,",
diff --git a/tsip.c b/tsip.c
index 91f84464..cd02c5e7 100644
--- a/tsip.c
+++ b/tsip.c
@@ -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... */