summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2014-08-20 06:53:06 -0400
committerEric S. Raymond <esr@thyrsus.com>2014-08-20 06:53:06 -0400
commit97bb2ac53d4355258a3e8cc8108a83542cd80027 (patch)
treecc2c32d3da09aa963a97adb5a866f281511c746a
parent51a7cff894e4e5b6c5c6ee46c96abbee7c2b276d (diff)
downloadgpsd-97bb2ac53d4355258a3e8cc8108a83542cd80027.tar.gz
Turn off GND in SiRF binary mode, as we don't use it.
This is in response to a report by Jeff WEoolsey on gpsd-dev indicating that it masy be *required* to turn this off to get accurate time...
-rw-r--r--driver_sirf.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/driver_sirf.c b/driver_sirf.c
index 3703e694..0dfc5faa 100644
--- a/driver_sirf.c
+++ b/driver_sirf.c
@@ -1427,46 +1427,51 @@ static void sirfbin_event_hook(struct gps_device_t *session, event_t event)
break;
case 4:
-#ifdef RECONFIGURE_ENABLE
+ /* unset GND (0x029), it's not reliable on SiRF II */
+ gpsd_report(session->context->debug, LOG_PROG, "SiRF: unset MID 64...\n");
+ putbyte(unsetmidXX, 6, 0x29);
+ (void)sirf_write(session, unsetmidXX);
+ break;
+
+ case 5:
if (!session->context->readonly) {
gpsd_report(session->context->debug, LOG_PROG,
"SiRF: Setting Navigation Parameters\n");
(void)sirf_write(session, modecontrol);
}
-#endif /* RECONFIGURE_ENABLE */
break;
- case 5:
+ case 6:
gpsd_report(session->context->debug, LOG_PROG,
"SiRF: Requesting periodic ecef reports...\n");
(void)sirf_write(session, requestecef);
break;
- case 6:
+ case 7:
gpsd_report(session->context->debug, LOG_PROG,
"SiRF: Requesting periodic tracker reports...\n");
(void)sirf_write(session, requesttracker);
break;
- case 7:
+ case 8:
gpsd_report(session->context->debug, LOG_PROG,
"SiRF: Setting DGPS control to use SBAS...\n");
(void)sirf_write(session, dgpscontrol);
break;
- case 8:
+ case 9:
gpsd_report(session->context->debug, LOG_PROG,
"SiRF: Setting SBAS to auto/integrity mode...\n");
(void)sirf_write(session, sbasparams);
break;
- case 9:
+ case 10:
gpsd_report(session->context->debug, LOG_PROG,
"SiRF: Enabling PPS message...\n");
(void)sirf_write(session, enablemid52);
break;
- case 10:
+ case 11:
/* SiRF recommends at least 57600 for SiRF IV nav data */
if (session->gpsdata.dev.baudrate >= 57600) {
/* fast enough, turn on nav data */
@@ -1481,7 +1486,7 @@ static void sirfbin_event_hook(struct gps_device_t *session, event_t event)
}
break;
- case 11:
+ case 12:
gpsd_report(session->context->debug, LOG_PROG, "SiRF: disable MID 7, 28, 29, 30, 31...\n");
putbyte(unsetmidXX, 5, 0x05);
(void)sirf_write(session, unsetmidXX);