diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2014-08-20 06:53:06 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2014-08-20 06:53:06 -0400 |
commit | 97bb2ac53d4355258a3e8cc8108a83542cd80027 (patch) | |
tree | cc2c32d3da09aa963a97adb5a866f281511c746a | |
parent | 51a7cff894e4e5b6c5c6ee46c96abbee7c2b276d (diff) | |
download | gpsd-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.c | 23 |
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); |