summaryrefslogtreecommitdiff
path: root/driver_nmea0183.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-04-11 18:16:36 -0700
committerGary E. Miller <gem@rellim.com>2019-04-11 18:16:36 -0700
commitb28734bab4f13737463e8787df4f6ba32a511e8a (patch)
treed6d1cbdf7a6171708f7d10daa7d75203b823f96a /driver_nmea0183.c
parent6f437b8f4da1de53b3275292e361218d0d540714 (diff)
downloadgpsd-b28734bab4f13737463e8787df4f6ba32a511e8a.tar.gz
driver_nmea0183: rearrange nmeaid_to_prn(), no functional change.
Diffstat (limited to 'driver_nmea0183.c')
-rw-r--r--driver_nmea0183.c58
1 files changed, 37 insertions, 21 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c
index ef0c6fb2..dcf66be0 100644
--- a/driver_nmea0183.c
+++ b/driver_nmea0183.c
@@ -971,28 +971,44 @@ static int nmeaid_to_prn(char *talker, int satnum, unsigned char *gnssid,
*svid = 0; /* default to unnknown svid */
if (0 != satnum && 32 >= satnum) {
*svid = satnum;
- if (talker[0] == 'B' && talker[1] == 'D') {
- /* map Beidou IDs */
- satnum += 200;
- *gnssid = 3;
- } else if (talker[0] == 'G' && talker[1] == 'B') {
- /* map Beidou IDs */
- *gnssid = 3;
- satnum += 200;
- } else if (talker[0] == 'G' && talker[1] == 'L') {
- /* GLONASS GL doesn't seem to do this, better safe than sorry */
- satnum += 64;
- *gnssid = 6;
- } else if (talker[0] == 'Q' && talker[1] == 'Z') {
- /* QZSS */
- satnum += 192;
- *gnssid = 5;
- } else if (talker[0] == 'G' && talker[1] == 'A') {
- /* Galileo */
- satnum += 300; /* Used by u-blox at least */
- *gnssid = 2;
+ switch (talker[0]) {
+ case 'G':
+ if (talker[1] == 'A') {
+ /* Galileo */
+ satnum += 300; /* Used by u-blox at least */
+ *gnssid = 2;
+ } else if (talker[1] == 'B') {
+ /* map Beidou IDs */
+ *gnssid = 3;
+ satnum += 200;
+ } else if (talker[1] == 'L') {
+ /* GLONASS GL doesn't seem to do this, better safe than sorry */
+ satnum += 64;
+ *gnssid = 6;
+ } else if (talker[1] == 'N') {
+ /* all of them, but only GPS is 0 < PRN < 33 */
+ } else if (talker[1] == 'P') {
+ /* GPS,SBAS,QZSS, but only GPS is 0 < PRN < 33 */
+ } /* else ?? */
+ break;
+ case 'B':
+ if (talker[1] == 'D') {
+ /* map Beidou IDs */
+ satnum += 200;
+ *gnssid = 3;
+ } /* else ?? */
+ break;
+ case 'Q':
+ if (talker[1] == 'Z') {
+ /* QZSS */
+ satnum += 192;
+ *gnssid = 5;
+ } /* else ? */
+ break;
+ default:
+ /* huh? */
+ break;
}
- /* what about $GN? */
} else if ( 33 <= satnum && 64 >= satnum) {
// NMEA-ID (33..64) to SBAS PRN 120-151.
/* SBAS */