X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosEepromRecordMetrum.java;h=6d516ebbe93cbb58081694ea5f48e71a65d0ce47;hb=96de483d745ea0ef95326de2847a2534f7057846;hp=df4d23a2800f7ff6d7c9505b3482dfeccaf9ccbb;hpb=e67a5c6ffa7174d66e985483fab4bf52ccaea5ca;p=fw%2Faltos diff --git a/altoslib/AltosEepromRecordMetrum.java b/altoslib/AltosEepromRecordMetrum.java index df4d23a2..6d516ebb 100644 --- a/altoslib/AltosEepromRecordMetrum.java +++ b/altoslib/AltosEepromRecordMetrum.java @@ -65,13 +65,13 @@ public class AltosEepromRecordMetrum extends AltosEepromRecord { public int svid(int n) { return data8(2 + n * 2); } public int c_n(int n) { return data8(2 + n * 2 + 1); } - public void update_state(AltosState state) { + public void update_state(AltosFlightListener state) { super.update_state(state); AltosGPS gps; /* Flush any pending GPS changes */ - if (state.gps_pending) { + if (state.gps_pending()) { switch (cmd()) { case AltosLib.AO_LOG_GPS_POS: case AltosLib.AO_LOG_GPS_LAT: @@ -111,7 +111,7 @@ public class AltosEepromRecordMetrum extends AltosEepromRecord { gps = state.make_temp_gps(false); gps.lat = latitude() / 1e7; gps.lon = longitude() / 1e7; - if (state.altitude_32()) + if (config_data().altitude_32()) gps.alt = (altitude_low() & 0xffff) | (altitude_high() << 16); else gps.alt = altitude_low(); @@ -146,9 +146,10 @@ public class AltosEepromRecordMetrum extends AltosEepromRecord { } public AltosEepromRecord next() { - if (start + length + length < eeprom.data.size()) - return new AltosEepromRecordMetrum(eeprom, start + length); - return null; + int s = next_start(); + if (s < 0) + return null; + return new AltosEepromRecordMetrum(eeprom, s); } public AltosEepromRecordMetrum(AltosEepromNew eeprom, int start) {