summaryrefslogtreecommitdiff
path: root/driver_superstar2.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2018-10-26 19:05:15 -0700
committerGary E. Miller <gem@rellim.com>2018-10-26 19:05:15 -0700
commit084db394dfab4c734196544f961a09a0b22ea3c3 (patch)
tree930ec43d121a0944132b9e66e3114d9e7192e3ea /driver_superstar2.c
parent65f9daadd1d82e7ba77510e5f3a193bbe6d32606 (diff)
downloadgpsd-084db394dfab4c734196544f961a09a0b22ea3c3.tar.gz
rawdata_t: convert mtime from timestamp_t to timespec_t.
One ns is important when measuring distance using time.
Diffstat (limited to 'driver_superstar2.c')
-rw-r--r--driver_superstar2.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/driver_superstar2.c b/driver_superstar2.c
index 475d258f..8020f092 100644
--- a/driver_superstar2.c
+++ b/driver_superstar2.c
@@ -285,7 +285,7 @@ superstar2_msg_measurement(struct gps_device_t *session, unsigned char *buf,
{
gps_mask_t mask = 0;
int i, n;
- double t;
+ double t, t_intp;
gpsd_log(&session->context->errout, LOG_PROG,
"superstar2 #23 - measurement block\n");
@@ -297,7 +297,9 @@ superstar2_msg_measurement(struct gps_device_t *session, unsigned char *buf,
return 0;
}
t = getled64((char *)buf, 7); /* measurement time */
- session->gpsdata.raw.mtime = t;
+ session->gpsdata.raw.mtime.tv_nsec = modf(t, &t_intp) * 10e9;
+ session->gpsdata.raw.mtime.tv_sec = (time_t)t_intp;
+
/* this is so we can tell which never got set */
for (i = 0; i < MAXCHANNELS; i++)
session->gpsdata.raw.meas[i].svid = 0;