diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2010-12-20 04:56:57 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2010-12-20 04:56:57 -0500 |
commit | bcea2a19a631a149839025c42629465e7ba63b9c (patch) | |
tree | cf71c60d698bc850b67e8effddfe5378fb708df6 /driver_tsip.c | |
parent | 07d0ac7220b760dc78eac593f73a508a23bbad71 (diff) | |
download | gpsd-bcea2a19a631a149839025c42629465e7ba63b9c.tar.gz |
Insert GPS week rollover checks everywhere we rely on GPS time.
All regression tests pass.
Diffstat (limited to 'driver_tsip.c')
-rw-r--r-- | driver_tsip.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/driver_tsip.c b/driver_tsip.c index 0f10306f..8d30c62e 100644 --- a/driver_tsip.c +++ b/driver_tsip.c @@ -192,8 +192,8 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) session->newdata.time = gpstime_to_unix(session->context->gps_week, - session->context->gps_tow) - - session->context->leap_seconds; + session->context->gps_tow) - session->context->leap_seconds; + gpsd_rollover_check(session, session->newdata.time); mask |= TIME_IS; } gpsd_report(LOG_INF, "GPS Time %f %d %f\n", f1, s1, f2); @@ -292,6 +292,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) gpstime_to_unix((int)session->context->gps_week, session->context->gps_tow) - session->context->leap_seconds; + gpsd_rollover_check(session, session->newdata.time); mask |= TIME_IS; } mask |= LATLON_IS | ALTITUDE_IS | CLEAR_IS | REPORT_IS; @@ -555,6 +556,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) gpstime_to_unix((int)session->context->gps_week, session->context->gps_tow) - session->context->leap_seconds; + gpsd_rollover_check(session, session->newdata.time); mask |= TIME_IS; } gpsd_report(LOG_INF, "GPS DP LLA %f %f %f %f\n", @@ -654,6 +656,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) session->newdata.time = gpstime_to_unix((int)s4, session->context->gps_tow) - session->context->leap_seconds; + gpsd_rollover_check(session, session->newdata.time); /*@ end @*/ mask |= TIME_IS | LATLON_IS | ALTITUDE_IS | SPEED_IS | TRACK_IS | @@ -697,6 +700,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) gpstime_to_unix(session->context->gps_week, session->context->gps_tow) - session->context->leap_seconds; + gpsd_rollover_check(session, session->newdata.time); /*@ end @*/ session->gpsdata.status = STATUS_NO_FIX; session->newdata.mode = MODE_NO_FIX; @@ -765,6 +769,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) session->newdata.time = gpstime_to_unix((int)s1, session->context->gps_tow) - (double)s2; + gpsd_rollover_check(session, session->newdata.time); mask |= TIME_IS | CLEAR_IS; gpsd_report(LOG_DATA, "SP-TTS 0xab time=%.2f mask={TIME}\n", session->newdata.time); |