summaryrefslogtreecommitdiff
path: root/libgpsd_core.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2006-09-01 09:28:57 +0000
committerEric S. Raymond <esr@thyrsus.com>2006-09-01 09:28:57 +0000
commit1f93f673598accfa3d94423d3edc4e7617f46e75 (patch)
tree08ab498443665b15332e3e42fc65484c119fc2fd /libgpsd_core.c
parent900f4573bdf27516c492ca4a2a9d785460b52df9 (diff)
downloadgpsd-1f93f673598accfa3d94423d3edc4e7617f46e75.tar.gz
Yet another minor data-management bug.
Error estimates for PGRME must be computed from newdata, not the merged fix.
Diffstat (limited to 'libgpsd_core.c')
-rw-r--r--libgpsd_core.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/libgpsd_core.c b/libgpsd_core.c
index c8b131ea..64724bc0 100644
--- a/libgpsd_core.c
+++ b/libgpsd_core.c
@@ -360,7 +360,7 @@ static void gpsd_binary_quality_dump(struct gps_device_t *session,
char *bufp2 = bufp;
(void)snprintf(bufp, len-strlen(bufp),
- "$GPGSA,%c,%d,", 'A', session->gpsdata.fix.mode);
+ "$GPGSA,%c,%d,", 'A', session->gpsdata.newdata.mode);
j = 0;
for (i = 0; i < session->device_type->channels; i++) {
if (session->gpsdata.used[i]) {
@@ -376,7 +376,7 @@ static void gpsd_binary_quality_dump(struct gps_device_t *session,
}
bufp += strlen(bufp);
#define ZEROIZE(x) (isnan(x)!=0 ? 0.0 : x)
- if (session->gpsdata.fix.mode == MODE_NO_FIX)
+ if (session->gpsdata.newdata.mode == MODE_NO_FIX)
(void)strlcat(bufp, ",,,", len);
else
(void)snprintf(bufp, len-strlen(bufp),
@@ -386,14 +386,14 @@ static void gpsd_binary_quality_dump(struct gps_device_t *session,
ZEROIZE(session->gpsdata.vdop));
nmea_add_checksum(bufp2);
bufp += strlen(bufp);
- if (finite(session->gpsdata.fix.eph)
- || finite(session->gpsdata.fix.epv)
+ if (finite(session->gpsdata.newdata.eph)
+ || finite(session->gpsdata.newdata.epv)
|| finite(session->gpsdata.epe)) {
/* output PGRME only if realistic */
(void)snprintf(bufp, len-strlen(bufp),
"$PGRME,%.2f,%.2f,%.2f",
- ZEROIZE(session->gpsdata.fix.eph),
- ZEROIZE(session->gpsdata.fix.epv),
+ ZEROIZE(session->gpsdata.newdata.eph),
+ ZEROIZE(session->gpsdata.newdata.epv),
ZEROIZE(session->gpsdata.epe));
nmea_add_checksum(bufp);
}
@@ -606,9 +606,6 @@ gps_mask_t gpsd_poll(struct gps_device_t *session)
if (session->gpsdata.status > STATUS_NO_FIX)
session->context->fixcnt++;
- /* compute errors and derived quantities */
- gpsd_error_model(session, &session->gpsdata.fix);
-
session->gpsdata.d_decode_time = timestamp();
/* also copy the sentence up to clients in raw mode */