summaryrefslogtreecommitdiff
path: root/driver_garmin.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2010-04-14 02:01:15 -0400
committerEric S. Raymond <esr@thyrsus.com>2010-04-14 02:01:15 -0400
commit5d64a1e0d6f44e7058cf21badf56517381f712cc (patch)
treec1e5968dae06540288d806faaf283d61a1bb5ec1 /driver_garmin.c
parent5329e53076fb92dc494bacf52d7386b18559efa9 (diff)
parent2e7ff585c5be1d57de18212c2f37d7c15ad960a9 (diff)
downloadgpsd-5d64a1e0d6f44e7058cf21badf56517381f712cc.tar.gz
Merge branch 'master' of ssh://esr@git.berlios.de/gitroot/gpsd
Diffstat (limited to 'driver_garmin.c')
-rw-r--r--driver_garmin.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/driver_garmin.c b/driver_garmin.c
index b6afdcf6..d876a9ac 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -1147,8 +1147,22 @@ static ssize_t garmin_control_send(struct gps_device_t *session,
#ifdef NTPSHM_ENABLE
static double garmin_ntp_offset(struct gps_device_t *session)
{
- /* only one sentence ships time */
- return 0.430; /* valid at 4800bps */
+ if (session->sourcetype == source_usb) {
+ return 0.042; /* Garmin USB */
+ }
+ /* only two sentences ships time */
+ /* but the PVT data is always first */
+ switch (session->gpsdata.dev.baudrate) {
+ case 4800:
+ return 0.430; /* TBD */
+ case 9600:
+ return 0.430; /* tested 12Arp10 */
+ case 19200:
+ return 0.430; /* TBD */
+ case 38400:
+ return 0.430; /* TBD */
+ }
+ return 0.430; /* WTF? WAG */
}
#endif /* NTPSHM_ENABLE */