diff options
author | Gary E. Miller <gem@rellim.com> | 2019-03-14 18:11:20 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2019-03-14 18:11:20 -0700 |
commit | d0a89301e71515a36e5c18319f00721295e940d8 (patch) | |
tree | 95f597b3001fbe4305d4999c3766d1444e6094cc /driver_nmea0183.c | |
parent | a7e975cd0273fd90e3c0536dc9da452b5ff8f01b (diff) | |
download | gpsd-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.c | 17 |
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)) { |