summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver_nmea0183.c2
-rw-r--r--packet.c5
-rw-r--r--test/daemon/beidou-bd.log (renamed from test/daemon/beidou.log)0
-rw-r--r--test/daemon/beidou-bd.log.chk (renamed from test/daemon/beidou.log.chk)0
-rw-r--r--test/daemon/beidou-gb.log77
-rw-r--r--www/NMEA.txt1
6 files changed, 84 insertions, 1 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c
index 7513d262..93dd8c39 100644
--- a/driver_nmea0183.c
+++ b/driver_nmea0183.c
@@ -493,6 +493,8 @@ static int nmeaid_to_prn(char *talker, int satnum)
/* map Beidou IDs */
if (talker[0] == 'B' && talker[1] == 'D')
satnum += 200;
+ else if (talker[0] == 'G' && talker[1] == 'B')
+ satnum += 200;
/* GLONASS reports don't seem to do this, but better safe than sorry */
if (talker[0] == 'G' && (talker[1] == 'L' || talker[1] == 'N'))
satnum += 37;
diff --git a/packet.c b/packet.c
index 625e02c6..08e58864 100644
--- a/packet.c
+++ b/packet.c
@@ -95,6 +95,7 @@ PERMISSIONS
* $GL -- GLONASS, according to IEIC 61162-1
* $GN -- Mixed GPS and GLONASS data, according to IEIC 61162-1
* $BD -- Beidou
+ * $GB -- Beidou
* $QZ -- QZSS GPS augmentation system
* $II -- Integrated Instrumentation (Raytheon's SeaTalk system).
* $IN -- Integrated Navigation (Garmin uses this).
@@ -386,8 +387,10 @@ static bool nextstate(struct gps_lexer_t *lexer, unsigned char c)
/*
* $GP == GPS, $GL = GLONASS only, $GN = mixed GPS and GLONASS,
* according to NMEA (IEIC 61162-1) DRAFT 02/06/2009.
+ * We have a log from China with a Beidou device using $GB
+ * rather than $BD.
*/
- if (c == 'P' || c == 'N' || c == 'L')
+ if (c == 'B' || c == 'P' || c == 'N' || c == 'L')
lexer->state = NMEA_LEADER_END;
else
(void) character_pushback(lexer, GROUND_STATE);
diff --git a/test/daemon/beidou.log b/test/daemon/beidou-bd.log
index 6138a9dc..6138a9dc 100644
--- a/test/daemon/beidou.log
+++ b/test/daemon/beidou-bd.log
diff --git a/test/daemon/beidou.log.chk b/test/daemon/beidou-bd.log.chk
index 864ab16e..864ab16e 100644
--- a/test/daemon/beidou.log.chk
+++ b/test/daemon/beidou-bd.log.chk
diff --git a/test/daemon/beidou-gb.log b/test/daemon/beidou-gb.log
new file mode 100644
index 00000000..69f8e848
--- /dev/null
+++ b/test/daemon/beidou-gb.log
@@ -0,0 +1,77 @@
+# Name: Unknown
+# Chipset = Unknown
+# Date = 2015-03-02
+# Submitter = Eli Huang <eli.huang.cn@gmail.com>
+# Notes: Contains Beidou and GLONASS sentences; Beidou sentences have the
+# alternate GB talker ID rather than BD. Use this to test that
+# Beidou NMEA IDs with GB are being mapped properly and that
+# Beidou GSV sentences are properly integrated into a combined
+# skyview.
+$PSRFEPE,053229.438,V,,,,,*23
+$GPGGA,053229.438,,,,,0,00,,,M,0.0,M,,0000*56
+$GNGNS,053229.438,,,,,NNNN,00,,,0.0,,0000*63
+$GNGSA,A,1,,,,,,,,,,,,,,,*00
+$GPGSV,6,1,21,05,00,000,27,06,00,000,24,07,00,000,24,11,00,000,22*7C
+$GPGSV,6,2,21,12,00,000,50,14,57,107,48,16,00,000,22,18,55,190,50*76
+$GPGSV,6,3,21,21,00,000,23,22,57,198,50,24,15,335,42,25,00,000,22*7C
+$GPGSV,6,4,21,26,00,000,24,28,00,000,22,31,58,140,35,27,56,093,*70
+$GPGSV,6,5,21,09,44,071,,15,24,255,,04,18,332,,17,15,022,*7B
+$GPGSV,6,6,21,23,05,259,*40
+$GBGSV,2,1,05,201,00,000,44,202,14,089,35,204,00,000,42,205,27,091,*66
+$GBGSV,2,2,05,209,07,033,*62
+$GNRMC,053229.438,V,,,,,,,020315,,,N*56
+$PSRFEPE,053230.438,V,,,,,*2B
+$GPGGA,053230.438,,,,,0,00,,,M,0.0,M,,0000*5E
+$GNGNS,053230.438,,,,,NNNN,00,,,0.0,,0000*6B
+$GNGSA,A,1,,,,,,,,,,,,,,,*00
+$GPGSV,6,1,21,05,00,000,21,06,00,000,24,07,00,000,23,11,00,000,22*7D
+$GPGSV,6,2,21,12,00,000,49,14,57,107,47,16,00,000,21,18,55,190,50*72
+$GPGSV,6,3,21,21,00,000,23,22,57,198,50,24,15,335,42,25,00,000,22*7C
+$GPGSV,6,4,21,26,00,000,23,28,00,000,22,31,58,140,35,27,56,093,*77
+$GPGSV,6,5,21,09,44,071,,15,24,255,,04,18,332,,17,15,022,*7B
+$GPGSV,6,6,21,23,05,259,*40
+$GBGSV,2,1,05,201,00,000,44,202,14,089,35,204,00,000,42,205,27,091,*66
+$GBGSV,2,2,05,209,07,033,*62
+$GNRMC,053230.438,V,,,,,,,020315,,,N*5E
+$PSRFEPE,053231.438,V,,,,,*2A
+$GPGGA,053231.438,,,,,0,00,,,M,0.0,M,,0000*5F
+$GNGNS,053231.438,,,,,NNNN,00,,,0.0,,0000*6A
+$GNGSA,A,1,,,,,,,,,,,,,,,*00
+$GPGSV,6,1,21,03,00,000,,05,00,000,25,07,00,000,24,11,00,000,22*7D
+$GPGSV,6,2,21,12,00,000,49,14,57,107,48,16,00,000,22,18,55,190,51*7F
+$GPGSV,6,3,21,21,00,000,24,22,57,198,49,24,15,335,42,25,00,000,22*73
+$GPGSV,6,4,21,26,00,000,22,28,00,000,22,31,58,140,34,27,56,093,*77
+$GPGSV,6,5,21,09,44,071,,15,24,255,,04,18,332,,17,15,022,*7B
+$GPGSV,6,6,21,23,05,259,*40
+$GBGSV,2,1,05,201,00,000,44,202,14,089,35,204,00,000,42,205,27,091,*66
+$GBGSV,2,2,05,209,07,033,*62
+$GNRMC,053231.438,V,,,,,,,020315,,,N*5F
+$PSRFEPE,053232.438,A,1.2,5.77,12.97,1.2,180.0*21
+$GPGGA,053232.438,3114.8789,N,12135.2442,E,1,06,1.2,153.8,M,8.3,M,,0000*6A
+$GNGNS,053232.438,3114.8789,N,12135.2442,E,ANNA,07,1.2,153.8,8.3,,0000*5F
+$GNGSA,A,3,22,18,14,12,31,24,,,,,,,2.5,1.2,2.2*23
+$GNGSA,A,3,201,,,,,,,,,,,,2.5,1.2,2.2*1B
+$GPGSV,6,1,21,22,80,039,49,18,50,119,51,14,51,342,48,12,20,061,50*78
+$GPGSV,6,2,21,31,51,228,34,24,04,041,43,03,00,000,20,05,00,000,26*77
+$GPGSV,6,3,21,06,00,000,26,07,00,000,24,16,00,000,22,21,00,000,24*7E
+$GPGSV,6,4,21,25,34,142,21,26,00,000,23,28,00,000,22,27,31,036,*71
+$GPGSV,6,5,21,15,21,289,,09,14,038,,30,14,180,,11,10,179,*7B
+$GPGSV,6,6,21,23,06,275,*4D
+$GBGSV,3,1,11,201,49,147,44,202,23,250,35,204,35,123,42,213,83,243,*6D
+$GBGSV,3,2,11,210,70,270,,207,70,267,,206,55,311,,203,49,208,*6B
+$GBGSV,3,3,11,209,36,317,,214,36,147,,205,11,257,*67
+$GNRMC,053232.438,A,3114.8789,N,12135.2442,E,0.26,167.42,020315,,,A*70
+$PSRFEPE,053233.438,A,1.2,25.61,66.06,0.3,180.0*1E
+$GPGGA,053233.438,3114.8821,N,12135.2428,E,1,06,1.2,167.2,M,8.3,M,,0000*67
+$GNGNS,053233.438,3114.8821,N,12135.2428,E,ANNA,07,1.2,167.2,8.3,,0000*52
+$GNGSA,A,3,22,18,14,12,31,24,,,,,,,2.5,1.2,2.2*23
+$GNGSA,A,3,201,,,,,,,,,,,,2.5,1.2,2.2*1B
+$GPGSV,5,1,18,22,73,312,50,18,66,145,51,14,41,330,48,12,34,060,49*7B
+$GPGSV,5,2,18,31,37,248,34,24,13,042,43,03,00,000,21,06,00,000,27*7E
+$GPGSV,5,3,18,07,00,000,23,16,00,000,20,21,00,000,24,26,00,000,23*75
+$GPGSV,5,4,18,25,44,164,,27,38,028,,09,22,036,,30,14,194,*77
+$GPGSV,5,5,18,11,11,192,,15,06,294,*77
+$GBGSV,3,1,11,201,49,147,44,202,23,250,35,204,35,123,42,213,83,243,*6D
+$GBGSV,3,2,11,210,70,270,,207,70,267,,206,55,311,,203,49,208,*6B
+$GBGSV,3,3,11,209,36,317,,214,36,147,,205,11,257,*67
+$GNRMC,053233.438,A,3114.8821,N,12135.2428,E,0.07,167.42,020315,,,A*73
diff --git a/www/NMEA.txt b/www/NMEA.txt
index c76b6d6d..c329705f 100644
--- a/www/NMEA.txt
+++ b/www/NMEA.txt
@@ -269,6 +269,7 @@ the following are well known:
|GA | Galileo Positioning System
|GL | GLONASS, according to IEIC 61162-1
|GN | Mixed GPS and GLONASS data, according to IEIC 61162-1
+|GB | Beidou regional GPS augmentation system (China)
|BD | Beidou regional GPS augmentation system (China)
|QZ | QZSS regional GPS augmentation system (Japan)
|================================================================