diff options
author | Michael Tatarinov <kukabu@gmail.com> | 2011-10-12 13:21:41 +0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-10-12 13:21:35 -0400 |
commit | dd91544265d582bcae08d5cb22d180a30c923526 (patch) | |
tree | aadf3ee75f830e49e07335b649cd274530566bb8 /driver_garmin.c | |
parent | 15e6cf26d92ce0fba20072e4d6f6599ceaeff676 (diff) | |
download | gpsd-dd91544265d582bcae08d5cb22d180a30c923526.tar.gz |
Garmin serial driver. Don't emit SKY if satellites aren't seen.
Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Diffstat (limited to 'driver_garmin.c')
-rw-r--r-- | driver_garmin.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/driver_garmin.c b/driver_garmin.c index af5bdbe8..39fef2f3 100644 --- a/driver_garmin.c +++ b/driver_garmin.c @@ -530,6 +530,7 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, gpsd_report(LOG_PROG, "Garmin: SAT Data Sz: %d\n", pkt_len); sats = (cpo_sat_data *) buf; + session->gpsdata.satellites_visible = 0; session->gpsdata.satellites_used = 0; memset(session->gpsdata.used, 0, sizeof(session->gpsdata.used)); gpsd_zero_satellites(&session->gpsdata); @@ -552,8 +553,8 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, // Garmin does not document this. snr is in dB*100 // Known, but not seen satellites have a dB value of -1*100 session->gpsdata.ss[j] = (float)(GPSD_LE16TOH(sats->snr) / 100.0); - if (session->gpsdata.ss[j] < 0.0) { - session->gpsdata.ss[j] = 0.0; + if (session->gpsdata.ss[j] == -1) { + continue; } // FIX-ME: Garmin documents this, but Daniel Dorau // <daniel.dorau@gmx.de> says the behavior on his GPSMap60CSX @@ -568,7 +569,10 @@ gps_mask_t PrintSERPacket(struct gps_device_t *session, unsigned char pkt_id, } session->gpsdata.skyview_time = NAN; - mask |= SATELLITE_SET | USED_IS; + if (session->gpsdata.satellites_visible > 0) + mask |= SATELLITE_SET; + if (session->gpsdata.satellites_used > 0) + mask |= USED_IS; gpsd_report(LOG_DATA, "Garmin: SAT_DATA: visible=%d used=%d\n", session->gpsdata.satellites_visible, |