summaryrefslogtreecommitdiff
path: root/driver_nmea0183.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-03-14 18:11:20 -0700
committerGary E. Miller <gem@rellim.com>2019-03-14 18:11:20 -0700
commitd0a89301e71515a36e5c18319f00721295e940d8 (patch)
tree95f597b3001fbe4305d4999c3766d1444e6094cc /driver_nmea0183.c
parenta7e975cd0273fd90e3c0536dc9da452b5ff8f01b (diff)
downloadgpsd-d0a89301e71515a36e5c18319f00721295e940d8.tar.gz
driver_nmea0183: $PSRFEPE,V sets MODE_NO_FIX
Only present in old SiRF.
Diffstat (limited to 'driver_nmea0183.c')
-rw-r--r--driver_nmea0183.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c
index d91323d8..73758139 100644
--- a/driver_nmea0183.c
+++ b/driver_nmea0183.c
@@ -1225,7 +1225,8 @@ static gps_mask_t processGSV(int count, char *field[],
session->nmea.last_gsv_talker = GSV_TALKER;
if (session->nmea.last_gsv_talker == 'L')
session->nmea.seen_glgsv = true;
- if (session->nmea.last_gsv_talker == 'D' || session->nmea.last_gsv_talker == 'B')
+ if (session->nmea.last_gsv_talker == 'D' ||
+ session->nmea.last_gsv_talker == 'B')
session->nmea.seen_bdgsv = true;
if (session->nmea.last_gsv_talker == 'Z')
session->nmea.seen_qzss = true;
@@ -1481,11 +1482,19 @@ static gps_mask_t processPSRFEPE(int c UNUSED, char *field[],
*
* SiRF won't say if these are 1-sigma or what...
*/
- gps_mask_t mask = 0;
+ gps_mask_t mask = STATUS_SET;
+ if ('\0' == field[2][0] ||
+ 'V' == field[2][0]) {
+ /* Invalid */
+ session->gpsdata.status = STATUS_NO_FIX;
+ session->newdata.mode = MODE_NO_FIX;
+ mask |= MODE_SET;
+ return mask;
+ }
if ('A' != field[2][0]) {
- /* not valid */
- return 0;
+ /* Huh? */
+ return mask;
}
if ('\0' != field[1][0]) {
if (0 == merge_hhmmss(field[1], session)) {