diff options
Diffstat (limited to 'driver_garmin.c')
-rw-r--r-- | driver_garmin.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/driver_garmin.c b/driver_garmin.c index da09f9d6..fc03775d 100644 --- a/driver_garmin.c +++ b/driver_garmin.c @@ -368,8 +368,8 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, // 631065600, unix seconds for 31 Dec 1989 Zulu time_l = (time_t) (631065600 + (GPSD_LE32TOH(pvt->grmn_days) * 86400)); // TODO, convert grmn_days to context->gps_week - time_l -= GPSD_LE16TOH(pvt->leap_sec); - session->context->leap_seconds = (int)GPSD_LE16TOH(pvt->leap_sec); + time_l -= GPSD_LE16TOH(pvt->leap_sec) + TAI_GPS_OFFSET; + session->context->leap_seconds = (int)GPSD_LE16TOH(pvt->leap_sec) + TAI_GPS_OFFSET; session->context->valid = LEAP_SECOND_VALID; // gps_tow is always like x.999 or x.998 so just round it time_l += (time_t) round(pvt->gps_tow); @@ -472,7 +472,7 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, pvt->alt, pvt->epe, pvt->eph, pvt->epv, GPSD_LE16TOH(pvt->fix), pvt->gps_tow, session->newdata.latitude, session->newdata.longitude, pvt->lon_vel, pvt->lat_vel, - pvt->alt_vel, pvt->msl_hght, GPSD_LE16TOH(pvt->leap_sec), + pvt->alt_vel, pvt->msl_hght, GPSD_LE16TOH(pvt->leap_sec) + TAI_GPS_OFFSET, GPSD_LE32TOH(pvt->grmn_days)); if (session->newdata.mode > MODE_NO_FIX) { |