summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--geoid.c3
-rw-r--r--sirf.c3
-rw-r--r--zodiac.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/geoid.c b/geoid.c
index 37a6bab8..ffe3215e 100644
--- a/geoid.c
+++ b/geoid.c
@@ -89,7 +89,8 @@ void ecef_to_wgs84fix(struct gps_fix_t *fix,
h = p / cos(phi) - n;
fix->latitude = phi * RAD_2_DEG;
fix->longitude = lambda * RAD_2_DEG;
- fix->altitude = h - wgs84_separation(fix->latitude, fix->longitude);
+ fix->separation = wgs84_separation(fix->latitude, fix->longitude);
+ fix->altitude = h - fix->separation;
/* velocity computation */
vnorth = -vx*sin(phi)*cos(lambda)-vy*sin(phi)*sin(lambda)+vz*cos(phi);
veast = -vx*sin(lambda)+vy*cos(lambda);
diff --git a/sirf.c b/sirf.c
index cf8184f5..c0db2c57 100644
--- a/sirf.c
+++ b/sirf.c
@@ -150,7 +150,8 @@ int sirf_parse(struct gps_device_t *session, unsigned char *buf, int len)
for (i = 0; i < len; i++)
sprintf(buf2+strlen(buf2), "%02x", buf[i]);
gpsd_report(5, "Raw SiRF packet type %d length %d: %s\n", buf[0],len,buf2);
- snprintf(session->gpsdata.tag,sizeof(session->gpsdata.tag),"MID%d",buf[0]);
+ if (buf[0] != 0xff)
+ snprintf(session->gpsdata.tag,sizeof(session->gpsdata.tag),"MID%d",buf[0]);
switch (buf[0])
{
diff --git a/zodiac.c b/zodiac.c
index 3e049e3a..cdda0145 100644
--- a/zodiac.c
+++ b/zodiac.c
@@ -144,6 +144,7 @@ static int handle1000(struct gps_device_t *session)
session->gpsdata.fix.longitude = getl(29) * RAD_2_DEG * 1e-8;
session->gpsdata.fix.speed = getl(34) * 1e-2 * MPS_TO_KNOTS;
session->gpsdata.fix.altitude = getl(31) * 1e-2;
+ session->gpsdata.fix.separation = getw(33) * 1e-2; /* meters */
session->gpsdata.fix.climb = getl(38) * 1e-2;
session->gpsdata.fix.eph = getl(40) * 1e-2;
session->gpsdata.fix.epv = getl(42) * 1e-2;
@@ -157,7 +158,6 @@ static int handle1000(struct gps_device_t *session)
session->gpsdata.fix.mode = (getw(10) & 1) ? MODE_2D : MODE_3D;
else
session->gpsdata.fix.mode = MODE_NO_FIX;
- session->gpsdata.fix.separation = getw(33) * 1e-2; /* meters */
#if 0
gpsd_report(1, "date: %%lf\n", session->gpsdata.fix.time);