diff options
author | Michael Tatarinov <kukabu@gmail.com> | 2011-10-20 08:08:31 +0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-10-20 03:00:59 -0400 |
commit | 718f6f40724ddb33dd693959a41bb04dbd01c33c (patch) | |
tree | b6ad94b0db91a8b55b064eec490079a65f17f624 /driver_garmin.c | |
parent | 3768f10954da150c86f1ebee116c7964e57f7315 (diff) | |
download | gpsd-718f6f40724ddb33dd693959a41bb04dbd01c33c.tar.gz |
Garmin binary protocol. Mapping Garmin RPN to SBAS PRN.
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Diffstat (limited to 'driver_garmin.c')
-rw-r--r-- | driver_garmin.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/driver_garmin.c b/driver_garmin.c index de211aef..f5c26f61 100644 --- a/driver_garmin.c +++ b/driver_garmin.c @@ -547,7 +547,10 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, continue; } - session->gpsdata.PRN[j] = (int)sats->svid; + if ((int)sats->svid <= 32) + session->gpsdata.PRN[j] = (int)sats->svid; /* GPS */ + else + session->gpsdata.PRN[j] = (int)sats->svid + 87; /* SBAS */ session->gpsdata.azimuth[j] = (int)GPSD_LE16TOH(sats->azmth); session->gpsdata.elevation[j] = (int)sats->elev; // Garmin does not document this. snr is in dB*100 @@ -562,7 +565,7 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, if ((uint8_t) 0 != (sats->status & 4)) { // used in solution? session->gpsdata.used[session->gpsdata.satellites_used++] - = (int)sats->svid; + = session->gpsdata.PRN[j]; } session->gpsdata.satellites_visible++; j++; |