summaryrefslogtreecommitdiff
path: root/driver_garmin.c
diff options
context:
space:
mode:
authorMichael Tatarinov <kukabu@gmail.com>2011-10-20 08:08:31 +0400
committerEric S. Raymond <esr@thyrsus.com>2011-10-20 03:00:59 -0400
commit718f6f40724ddb33dd693959a41bb04dbd01c33c (patch)
treeb6ad94b0db91a8b55b064eec490079a65f17f624 /driver_garmin.c
parent3768f10954da150c86f1ebee116c7964e57f7315 (diff)
downloadgpsd-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.c7
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++;