summaryrefslogtreecommitdiff
path: root/driver_nmea0183.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2017-01-09 15:23:38 -0800
committerGary E. Miller <gem@rellim.com>2017-01-09 15:23:38 -0800
commitabefd5c286bba507729252c097c0cb895b3acf44 (patch)
treeef7de56318e86a5759ed797e991040f4ada1344d /driver_nmea0183.c
parent7bc5e8c1a2ffb49afc1e75bf699a643687713e12 (diff)
downloadgpsd-abefd5c286bba507729252c097c0cb895b3acf44.tar.gz
nmea 0183: better fix for non-updating DOPs.
regressions updated. Other rdivers prolly need similar fixes.
Diffstat (limited to 'driver_nmea0183.c')
-rw-r--r--driver_nmea0183.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c
index ba1969c7..64b9de7c 100644
--- a/driver_nmea0183.c
+++ b/driver_nmea0183.c
@@ -617,8 +617,6 @@ static gps_mask_t processGSA(int count, char *field[],
session->gpsdata.dop.hdop = safe_atof(field[16]);
if (field[17][0] != '\0')
session->gpsdata.dop.vdop = safe_atof(field[17]);
- /* clear computed DOPs so they get recomputed. */
- session->gpsdata.dop.tdop = NAN;
/*
* might have gone from GPGSA to GLGSA/BDGSA
* or GNGSA to GNGSA
@@ -856,6 +854,12 @@ static gps_mask_t processGSV(int count, char *field[],
/* assumes GLGSV or BDGSV group, if present, is emitted after the GPGSV */
if ((session->nmea.seen_glgsv || session->nmea.seen_bdgsv || session->nmea.seen_qzss) && GSV_TALKER == 'P')
return ONLINE_SET;
+
+ /* clear computed DOPs so they get recomputed. */
+ session->gpsdata.dop.xdop = NAN;
+ session->gpsdata.dop.ydop = NAN;
+ session->gpsdata.dop.tdop = NAN;
+ session->gpsdata.dop.gdop = NAN;
return SATELLITE_SET;
#undef GSV_TALKER
}