summaryrefslogtreecommitdiff
path: root/gpsd.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2015-04-01 11:49:44 -0700
committerGary E. Miller <gem@rellim.com>2015-04-01 11:57:53 -0700
commit233ec5d94af10d894996ebc4aa1a9f850cdbf500 (patch)
treea83cd1396a8cd35423e38c443d8d492d5e898bc1 /gpsd.c
parentceb7d3e1267c20e8a6e421ecd42f933a286e33cd (diff)
downloadgpsd-233ec5d94af10d894996ebc4aa1a9f850cdbf500.tar.gz
Add precision to the PPS JSON message.
Diffstat (limited to 'gpsd.c')
-rw-r--r--gpsd.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gpsd.c b/gpsd.c
index 269ea904..74762c8a 100644
--- a/gpsd.c
+++ b/gpsd.c
@@ -1670,11 +1670,19 @@ static void ship_pps_message(struct gps_device_t *session,
struct timedelta_t *td)
/* on PPS interrupt, ship a message to all clients */
{
+ int precision = -20;
+
+ if ( source_usb == session->sourcetype) {
+ /* PPS over USB not so good */
+ precision = -10;
+ }
+
notify_watchers(session, true, true,
- "{\"class\":\"PPS\",\"device\":\"%s\",\"real_sec\":%ld, \"real_nsec\":%ld,\"clock_sec\":%ld,\"clock_nsec\":%ld}\r\n",
+ "{\"class\":\"PPS\",\"device\":\"%s\",\"real_sec\":%ld, \"real_nsec\":%ld,\"clock_sec\":%ld,\"clock_nsec\":%ld,\"precision\":%d}\r\n",
session->gpsdata.dev.path,
td->real.tv_sec, td->real.tv_nsec,
- td->clock.tv_sec, td->clock.tv_nsec);
+ td->clock.tv_sec, td->clock.tv_nsec,
+ precision);
/*
* PPS receipt resets the device's timeout. This keeps PPS-only