* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_11;
+package org.altusmetrum.altoslib_14;
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 = new AltosGPS();
+ AltosCalData cal_data = listener.cal_data();
+
+ AltosGPS gps = listener.make_temp_gps(false);
int flags = flags();
gps.nsat = flags & 0xf;
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;
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);
+ if (gps.connected)
+ listener.set_gps(gps, true, false);
}
}