summaryrefslogtreecommitdiff
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
parenta7e975cd0273fd90e3c0536dc9da452b5ff8f01b (diff)
downloadgpsd-d0a89301e71515a36e5c18319f00721295e940d8.tar.gz
driver_nmea0183: $PSRFEPE,V sets MODE_NO_FIX
Only present in old SiRF.
-rw-r--r--driver_nmea0183.c17
-rw-r--r--test/daemon/beidou-bd.log.chk5
-rw-r--r--test/daemon/beidou-gb.log.chk3
3 files changed, 21 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)) {
diff --git a/test/daemon/beidou-bd.log.chk b/test/daemon/beidou-bd.log.chk
index c431f074..433532a8 100644
--- a/test/daemon/beidou-bd.log.chk
+++ b/test/daemon/beidou-bd.log.chk
@@ -1,4 +1,5 @@
$PSRFEPE,074150.799,V,,,,,*23
+{"class":"TPV","mode":1}
$GNGGA,074150.799,,,,,0,00,,,M,0.0,M,,0000,*64
$GNGNS,074150.799,,,,,NNNN,00,,,0.0,,0000*63
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
@@ -19,6 +20,7 @@ $BDGSV,2,2,07,05,27,090,,13,19,016,,11,07,147,*5E
$GNRMC,074150.799,V,,,,,,,250215,,,N*52
{"class":"TPV","mode":1}
$PSRFEPE,074151.799,V,,,,,*22
+{"class":"TPV","mode":1}
$GNGGA,074151.799,,,,,0,00,,,M,0.0,M,,0000,*65
$GNGNS,074151.799,,,,,NNNN,00,,,0.0,,0000*62
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
@@ -27,6 +29,7 @@ $BDGSA,A,1,,,,,,,,,,,,,,,,*23
$GNRMC,074151.799,V,,,,,,,250215,,,N*53
{"class":"TPV","mode":1}
$PSRFEPE,074152.799,V,,,,,*21
+{"class":"TPV","mode":1}
$GNGGA,074152.799,,,,,0,00,,,M,0.0,M,,0000,*66
$GNGNS,074152.799,,,,,NNNN,00,,,0.0,,0000*61
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
@@ -36,6 +39,7 @@ $GNRMC,074152.799,V,,,,,,,250215,,,N*50
{"class":"TPV","mode":1}
$PSRF151,3,1833,28692,0x7EFFFFFF*15
$PSRFEPE,074153.799,V,,,,,*20
+{"class":"TPV","mode":1}
$GNGGA,074153.799,,,,,0,00,,,M,0.0,M,,0000,*67
$GNGNS,074153.799,,,,,NNNN,00,,,0.0,,0000*60
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
@@ -44,6 +48,7 @@ $BDGSA,A,1,,,,,,,,,,,,,,,,*23
$GNRMC,074153.799,V,,,,,,,250215,,,N*51
{"class":"TPV","mode":1}
$PSRFEPE,074154.799,V,,,,,*27
+{"class":"TPV","mode":1}
$GNGGA,074154.799,,,,,0,00,,,M,0.0,M,,0000,*60
$GNGNS,074154.799,,,,,NNNN,00,,,0.0,,0000*67
$GPGSA,A,1,,,,,,,,,,,,,,,,*32
diff --git a/test/daemon/beidou-gb.log.chk b/test/daemon/beidou-gb.log.chk
index 1cc921e7..7c7c9e0d 100644
--- a/test/daemon/beidou-gb.log.chk
+++ b/test/daemon/beidou-gb.log.chk
@@ -1,4 +1,5 @@
$PSRFEPE,053229.438,V,,,,,*23
+{"class":"TPV","mode":1}
$GPGGA,053229.438,,,,,0,00,,,M,0.0,M,,0000*56
$GNGNS,053229.438,,,,,NNNN,00,,,0.0,,0000*63
$GNGSA,A,1,,,,,,,,,,,,,,,*00
@@ -16,6 +17,7 @@ $GBGSV,2,2,05,209,07,033,*62
$GNRMC,053229.438,V,,,,,,,020315,,,N*56
{"class":"TPV","mode":1}
$PSRFEPE,053230.438,V,,,,,*2B
+{"class":"TPV","mode":1}
$GPGGA,053230.438,,,,,0,00,,,M,0.0,M,,0000*5E
$GNGNS,053230.438,,,,,NNNN,00,,,0.0,,0000*6B
$GNGSA,A,1,,,,,,,,,,,,,,,*00
@@ -32,6 +34,7 @@ $GBGSV,2,2,05,209,07,033,*62
$GNRMC,053230.438,V,,,,,,,020315,,,N*5E
{"class":"TPV","mode":1}
$PSRFEPE,053231.438,V,,,,,*2A
+{"class":"TPV","mode":1}
$GPGGA,053231.438,,,,,0,00,,,M,0.0,M,,0000*5F
$GNGNS,053231.438,,,,,NNNN,00,,,0.0,,0000*6A
$GNGSA,A,1,,,,,,,,,,,,,,,*00