summaryrefslogtreecommitdiff
path: root/driver_tsip.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2010-12-20 04:56:57 -0500
committerEric S. Raymond <esr@thyrsus.com>2010-12-20 04:56:57 -0500
commitbcea2a19a631a149839025c42629465e7ba63b9c (patch)
treecf71c60d698bc850b67e8effddfe5378fb708df6 /driver_tsip.c
parent07d0ac7220b760dc78eac593f73a508a23bbad71 (diff)
downloadgpsd-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.c9
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);