diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2014-09-19 07:00:59 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2014-09-19 07:00:59 -0400 |
commit | 4308073b7956cb57189a334c3bc680ae576abf14 (patch) | |
tree | ff5cccbf560d05ee309d92c59f2c777190c6a37b /driver_nmea0183.c | |
parent | b47c9e94e1ef26e3f99cb60c7042e2c9e795ef9d (diff) | |
download | gpsd-4308073b7956cb57189a334c3bc680ae576abf14.tar.gz |
A bug fix for error modeling when NMEA 0183 reports empty DOP fields.
Required 13 regression-test rebuilds.
Diffstat (limited to 'driver_nmea0183.c')
-rw-r--r-- | driver_nmea0183.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c index 4441f9a0..59f2d848 100644 --- a/driver_nmea0183.c +++ b/driver_nmea0183.c @@ -502,9 +502,12 @@ static gps_mask_t processGSA(int count, char *field[], mask = MODE_SET; gpsd_report(&session->context->errout, LOG_PROG, "GPGSA sets mode %d\n", session->newdata.mode); - session->gpsdata.dop.pdop = safe_atof(field[15]); - session->gpsdata.dop.hdop = safe_atof(field[16]); - session->gpsdata.dop.vdop = safe_atof(field[17]); + if (field[15][0]) + session->gpsdata.dop.pdop = safe_atof(field[15]); + if (field[16][0]) + session->gpsdata.dop.hdop = safe_atof(field[16]); + if (field[17][0]) + session->gpsdata.dop.vdop = safe_atof(field[17]); session->gpsdata.satellites_used = 0; memset(session->gpsdata.used, 0, sizeof(session->gpsdata.used)); /* the magic 6 here counts the tag, two mode fields, and the DOP fields */ |