From 0669f0d74fc24c4f1925a45a9975b7a49a65b692 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 27 Oct 2011 00:49:23 -0700 Subject: altosui: Only update GPS data when new GPS information arrives Track which telemetry packets are actually producing new GPS information and only update the GPS average position and count of stable GPS reports with new GPS info, instead of on every telemetry packet. Signed-off-by: Keith Packard --- altosui/AltosTelemetryRecordLegacy.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'altosui/AltosTelemetryRecordLegacy.java') diff --git a/altosui/AltosTelemetryRecordLegacy.java b/altosui/AltosTelemetryRecordLegacy.java index f59027ab..f2f63358 100644 --- a/altosui/AltosTelemetryRecordLegacy.java +++ b/altosui/AltosTelemetryRecordLegacy.java @@ -265,8 +265,10 @@ public class AltosTelemetryRecordLegacy extends AltosRecord implements AltosTele flight_vel = map.get_int(AO_TELEM_ADHOC_SPEED, MISSING); flight_pres = map.get_int(AO_TELEM_ADHOC_BARO, MISSING); - if (map.has(AO_TELEM_GPS_STATE)) + if (map.has(AO_TELEM_GPS_STATE)) { gps = new AltosGPS(map); + new_gps = true; + } else gps = null; } @@ -355,6 +357,7 @@ public class AltosTelemetryRecordLegacy extends AltosRecord implements AltosTele } gps = new AltosGPS(words, i, version); + new_gps = true; } public AltosTelemetryRecordLegacy(String line) throws ParseException, AltosCRCException { @@ -467,6 +470,7 @@ public class AltosTelemetryRecordLegacy extends AltosRecord implements AltosTele if ((gps_flags & (AO_GPS_VALID|AO_GPS_RUNNING)) != 0) { gps = new AltosGPS(); + new_gps = true; seen |= seen_gps_time | seen_gps_lat | seen_gps_lon; gps.nsat = (gps_flags & AO_GPS_NUM_SAT_MASK); -- cgit v1.2.3