summaryrefslogtreecommitdiff
path: root/driver_nmea0183.c
diff options
context:
space:
mode:
authorMichael Tatarinov <kukabu@gmail.com>2012-10-23 10:07:32 +0400
committerEric S. Raymond <esr@thyrsus.com>2012-10-23 06:13:47 -0400
commitffade307317ee9ff85fc9ec1b8253564f217bfa9 (patch)
tree95a753bab41a662bd4f91aff28c1d72eac962c50 /driver_nmea0183.c
parentfa8834b25c9ea0b5e7b493d61e05d611ca47cb16 (diff)
downloadgpsd-ffade307317ee9ff85fc9ec1b8253564f217bfa9.tar.gz
Mapping NMEA-ID (33..64) to SBAS PRN and minor refactoring.
This change required a regression-test rebuild. Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Diffstat (limited to 'driver_nmea0183.c')
-rw-r--r--driver_nmea0183.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c
index 65b6fe14..828f1b2d 100644
--- a/driver_nmea0183.c
+++ b/driver_nmea0183.c
@@ -571,6 +571,14 @@ static gps_mask_t processGPGSV(int count, char *field[],
}
session->gpsdata.PRN[session->gpsdata.satellites_visible] =
atoi(field[fldnum++]);
+ /*
+ * NMEA-ID (33..64) to SBAS PRN.
+ * Check SBAS_PRN(NMEA-ID) is required because some GPSes sends RPN instead of NMEA-ID.
+ */
+ if (session->gpsdata.PRN[session->gpsdata.satellites_visible] >= 33
+ && session->gpsdata.PRN[session->gpsdata.satellites_visible] <= 64
+ && !SBAS_PRN(session->gpsdata.PRN[session->gpsdata.satellites_visible]))
+ session->gpsdata.PRN[session->gpsdata.satellites_visible] += 87;
session->gpsdata.elevation[session->gpsdata.satellites_visible] =
atoi(field[fldnum++]);
session->gpsdata.azimuth[session->gpsdata.satellites_visible] =