summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2012-05-09 20:03:44 -0400
committerEric S. Raymond <esr@thyrsus.com>2012-05-09 20:03:44 -0400
commit398094402837f5deb31bd8e479fc04c5f27c1edf (patch)
tree8b29d2e8c966175b68ac8fbfb222d03300261953
parent1b3599842bda43883da3730a8f50620f13957c31 (diff)
parent470b53e846f13ab1c660cd05fe901d1e801df4e3 (diff)
downloadgpsd-398094402837f5deb31bd8e479fc04c5f27c1edf.tar.gz
Merge branch 'master' of git.sv.gnu.org:/srv/git/gpsd
-rw-r--r--driver_garmin.c8
-rw-r--r--gpsd.xml2
-rw-r--r--subframe.c12
3 files changed, 11 insertions, 11 deletions
diff --git a/driver_garmin.c b/driver_garmin.c
index ba39d597..1bddabb1 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -908,10 +908,7 @@ static bool garmin_usb_detect(struct gps_device_t *session UNUSED)
#ifdef HAVE_LIBUSB
if (!is_usb_device(session->gpsdata.dev.path, 0x091e, 0x0003))
return false;
-#else
- return false;
-#endif /* HAVE_LIBUSB */
- /*@-unreachable@*/
+
if (!gpsd_set_raw(session)) {
gpsd_report(LOG_ERROR,
"Garmin: garmin_usb_detect: error changing port attributes: %s\n",
@@ -937,6 +934,9 @@ static bool garmin_usb_detect(struct gps_device_t *session UNUSED)
return true;
}
#else
+ return false;
+#endif /* HAVE_LIBUSB */
+#else
return false;
#endif /* __linux__ || S_SPLINT_S */
}
diff --git a/gpsd.xml b/gpsd.xml
index 0307c18e..75285dda 100644
--- a/gpsd.xml
+++ b/gpsd.xml
@@ -304,7 +304,7 @@ passed to local clients.</para>
<listitem>
<para>A URI with the prefix "nmea2000://", followed by a CAN
devicename. Only Linux socket CAN interfaces are supported. The
-interface must be configured to receive CAN messages at
+interface must be configured to receive CAN messages
before <application>gpsd</application> can be started. If
there is more then one unit on the CAN bus that provides GPS data,
<application>gpsd</application> chooses the unit from which a GPS message
diff --git a/subframe.c b/subframe.c
index 87eda3c0..a670a27c 100644
--- a/subframe.c
+++ b/subframe.c
@@ -668,10 +668,10 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
sv = -1;
/* current leap seconds */
- subp->sub4_18.alpha0 = (int8_t)((words[2] >> 16) & 0x0000FF);
+ subp->sub4_18.alpha0 = (int8_t)((words[2] >> 8) & 0x0000FF);
subp->sub4_18.d_alpha0 = pow(2.0, -30) * (int)subp->sub4_18.alpha0;
- subp->sub4_18.alpha1 = (int8_t)((words[2] >> 8) & 0x0000FF);
- subp->sub4_18.d_alpha1 = pow(2.0, -27) * (int)subp->sub4_18.alpha2;
+ subp->sub4_18.alpha1 = (int8_t)((words[2] >> 0) & 0x0000FF);
+ subp->sub4_18.d_alpha1 = pow(2.0, -27) * (int)subp->sub4_18.alpha1;
subp->sub4_18.alpha2 = (int8_t)((words[3] >> 16) & 0x0000FF);
subp->sub4_18.d_alpha2 = pow(2.0, -24) * (int)subp->sub4_18.alpha2;
subp->sub4_18.alpha3 = (int8_t)((words[3] >> 8) & 0x0000FF);
@@ -680,7 +680,7 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
subp->sub4_18.beta0 = (int8_t)((words[3] >> 0) & 0x0000FF);
subp->sub4_18.d_beta0 = pow(2.0, 11) * (int)subp->sub4_18.beta0;
subp->sub4_18.beta1 = (int8_t)((words[4] >> 16) & 0x0000FF);
- subp->sub4_18.d_beta1 = pow(2.0, 14) * (int)subp->sub4_18.beta2;
+ subp->sub4_18.d_beta1 = pow(2.0, 14) * (int)subp->sub4_18.beta1;
subp->sub4_18.beta2 = (int8_t)((words[4] >> 8) & 0x0000FF);
subp->sub4_18.d_beta2 = pow(2.0, 16) * (int)subp->sub4_18.beta2;
subp->sub4_18.beta3 = (int8_t)((words[4] >> 0) & 0x0000FF);
@@ -691,13 +691,13 @@ gps_mask_t gpsd_interpret_subframe(struct gps_device_t *session,
subp->sub4_18.d_A1 = pow(2.0,-50) * subp->sub4_18.A1;
subp->sub4_18.A0 = (int32_t)((words[6] >> 0) & 0xFFFFFF);
subp->sub4_18.A0 <<= 8;
- subp->sub4_18.A0 |= ((words[7] >> 16) & 0x00FFFF);
+ subp->sub4_18.A0 |= ((words[7] >> 16) & 0x0000FF);
subp->sub4_18.d_A0 = pow(2.0,-30) * subp->sub4_18.A0;
/* careful WN is 10 bits, but WNt is 8 bits! */
/* WNt (Week Number of LSF) */
subp->sub4_18.tot = ((words[7] >> 8) & 0x0000FF);
- subp->sub4_18.d_tot = pow(2.0,12) * subp->sub4_18.d_tot;
+ subp->sub4_18.d_tot = pow(2.0,12) * subp->sub4_18.tot;
subp->sub4_18.WNt = ((words[7] >> 0) & 0x0000FF);
subp->sub4_18.leap = (int8_t)((words[8] >> 16) & 0x0000FF);
subp->sub4_18.WNlsf = ((words[8] >> 8) & 0x0000FF);