X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosTelemetryLocation.java;h=60a1d68cbfd3fe47d68158066c12f7ede478e1d3;hb=3ed101d634968666cd3ee2d8c49737970caf406b;hp=6819fec8c5b9898c133032449db3197bf4795ff8;hpb=a61217f0a6d0ef48b6471f632c4600255867e831;p=fw%2Faltos diff --git a/altoslib/AltosTelemetryLocation.java b/altoslib/AltosTelemetryLocation.java index 6819fec8..60a1d68c 100644 --- a/altoslib/AltosTelemetryLocation.java +++ b/altoslib/AltosTelemetryLocation.java @@ -16,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_12; +package org.altusmetrum.altoslib_14; public class AltosTelemetryLocation extends AltosTelemetryStandard { @@ -49,10 +49,11 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard { super(bytes); } - public void provide_data(AltosDataListener listener, AltosCalData cal_data) { - super.provide_data(listener, cal_data); + public void provide_data(AltosDataListener listener) { - AltosGPS gps = cal_data.make_temp_gps(tick(), false); + AltosCalData cal_data = listener.cal_data(); + + AltosGPS gps = listener.make_temp_gps(false); int flags = flags(); gps.nsat = flags & 0xf; @@ -61,6 +62,8 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard { gps.pdop = pdop() / 10.0; gps.hdop = hdop() / 10.0; gps.vdop = vdop() / 10.0; + if (gps.connected) + super.provide_data(listener); if (gps.locked) { gps.lat = latitude() * 1.0e-7; @@ -75,12 +78,8 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard { gps.ground_speed = ground_speed() * 1.0e-2; gps.course = course() * 2; gps.climb_rate = climb_rate() * 1.0e-2; - - if (gps.nsat >= 4) - cal_data.set_gps(gps); } - listener.set_gps(gps); - cal_data.set_gps(gps); - cal_data.reset_temp_gps(); + if (gps.connected) + listener.set_gps(gps, true, false); } }