diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-01-17 10:56:32 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-01-17 10:56:32 -0500 |
commit | f12d1b2a532f5540ab43309a8c5e658329f5df71 (patch) | |
tree | 2d433bf85f16f538b409183a3e6ea2f25289609b /driver_tsip.c | |
parent | 3307f9c53771f39873aad7ceec1ff09bd100b108 (diff) | |
download | gpsd-f12d1b2a532f5540ab43309a8c5e658329f5df71.tar.gz |
Introduce GPS_TIME_VALID flag for GPS time validation.
Diffstat (limited to 'driver_tsip.c')
-rw-r--r-- | driver_tsip.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/driver_tsip.c b/driver_tsip.c index 76fb636f..e96cff35 100644 --- a/driver_tsip.c +++ b/driver_tsip.c @@ -192,6 +192,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) session->context->leap_seconds = (int)round(f2); session->context->valid |= LEAP_SECOND_VALID; session->context->gps_tow = f1; + session->context->valid |= GPS_TIME_VALID; session->newdata.time = gpstime_to_unix(session->context->gps_week, @@ -290,7 +291,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) f1 = getbef(buf, 12); /* clock bias */ f2 = getbef(buf, 16); /* time-of-fix */ session->context->gps_tow = f2; - if (session->context->gps_week) { + if ((session->context->valid & GPS_TIME_VALID)!=0 && session->context->gps_week) { session->newdata.time = gpstime_to_unix((int)session->context->gps_week, session->context->gps_tow) @@ -554,7 +555,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) d1 = getbed(buf, 24); /* clock bias */ f1 = getbef(buf, 32); /* time-of-fix */ session->context->gps_tow = f1; - if (session->context->gps_week) { + if ((session->context->valid & GPS_TIME_VALID)!=0 && session->context->gps_week) { session->newdata.time = gpstime_to_unix((int)session->context->gps_week, session->context->gps_tow) @@ -655,6 +656,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) } session->context->gps_week = (unsigned short)s4; session->context->gps_tow = (double)ul1 *1e-3; + session->context->valid |= GPS_TIME_VALID; /*@ ignore @*//*@ splint is confused @ */ session->newdata.time = gpstime_to_unix((int)s4, session->context->gps_tow) @@ -698,6 +700,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) } session->context->gps_week = (unsigned short)s1; session->context->gps_tow = (double)ul1 *1e3; + session->context->valid |= GPS_TIME_VALID; /*@ ignore @*//*@ splint is confused @ */ session->newdata.time = gpstime_to_unix(session->context->gps_week, @@ -769,6 +772,7 @@ static gps_mask_t tsip_analyze(struct gps_device_t *session) session->context->gps_week = s1; session->context->gps_tow = (double)ul1; + session->context->valid |= GPS_TIME_VALID; session->newdata.time = gpstime_to_unix((int)s1, session->context->gps_tow) - (double)s2; |