first cut at turnon scripts for EasyTimer v2
[fw/altos] / altoslib / AltosTelemetryLocation.java
index f4366e33a3116ada1f71104dc4854dce701e1cad..60a1d68cbfd3fe47d68158066c12f7ede478e1d3 100644 (file)
@@ -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 {
@@ -50,11 +50,10 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard {
        }
 
        public void provide_data(AltosDataListener listener) {
-               super.provide_data(listener);
 
                AltosCalData    cal_data = listener.cal_data();
 
-               AltosGPS        gps = cal_data.make_temp_gps(tick(), false);
+               AltosGPS        gps = listener.make_temp_gps(false);
 
                int flags = flags();
                gps.nsat = flags & 0xf;
@@ -63,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;
@@ -77,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);
        }
 }