X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosEepromRecordTiny.java;h=705fbd9e63fcf1511ee5481d729c8b9c1085f9ff;hp=6c04bfee16c8bf4bff6245fd49243f7c85cd9b59;hb=f26cfe417c6977cf1e7e75a4f050e25f64d41859;hpb=e67a5c6ffa7174d66e985483fab4bf52ccaea5ca diff --git a/altoslib/AltosEepromRecordTiny.java b/altoslib/AltosEepromRecordTiny.java index 6c04bfee..705fbd9e 100644 --- a/altoslib/AltosEepromRecordTiny.java +++ b/altoslib/AltosEepromRecordTiny.java @@ -14,13 +14,17 @@ package org.altusmetrum.altoslib_11; -public class AltosEepromRecordTiny extends AltosEepromRecord { +public class AltosEepromRecordTiny extends AltosEepromRecord implements AltosDataProvider { public static final int record_length = 2; private int value() { return eeprom.data16(start); } + public boolean valid(int s) { + return eeprom.data16(s) != 0xffff; + } + public int cmd() { if (start == 0) return AltosLib.AO_LOG_FLIGHT; @@ -46,29 +50,30 @@ public class AltosEepromRecordTiny extends AltosEepromRecord { return tick; } - public void update_state(AltosState state) { + public void provide_data(AltosDataListener listener, AltosCalData cal_data) { int value = data16(-header_length); - state.set_tick(tick()); + cal_data.set_tick(tick()); switch (cmd()) { case AltosLib.AO_LOG_FLIGHT: - state.set_state(AltosLib.ao_flight_pad); - state.set_flight(value); - state.set_boost_tick(0); + listener.set_state(AltosLib.ao_flight_pad); + cal_data.set_flight(value); + cal_data.set_boost_tick(); break; case AltosLib.AO_LOG_STATE: - state.set_state(value & 0x7fff); + listener.set_state(value & 0x7fff); break; case AltosLib.AO_LOG_SENSOR: - state.set_pressure(AltosConvert.barometer_to_pressure(value)); + listener.set_pressure(AltosConvert.barometer_to_pressure(value)); break; } } public AltosEepromRecord next() { - if (start + record_length * 2 < eeprom.data.size()) - return new AltosEepromRecordTiny(eeprom, start + record_length); - return null; + int s = next_start(); + if (s < 0) + return null; + return new AltosEepromRecordTiny(eeprom, s); } public AltosEepromRecordTiny(AltosEepromNew eeprom, int start) {