X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosEepromRecordSet.java;h=94a4f643029afc3bf5a94623ca4be614712169b4;hp=27f81df6d31f86bfdf094d0cc97898ff861810e6;hb=5ff0442702ee41179341240b1bbf290be89e1718;hpb=297eb795b24ec31f6599f48bc8c3769557a7ec6f diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index 27f81df6..94a4f643 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -21,29 +21,38 @@ public class AltosEepromRecordSet implements AltosRecordSet { AltosEeprom eeprom; TreeSet ordered; AltosCalData cal_data; + boolean valid; public AltosConfigData config_data() { return eeprom.config_data(); } + private void init_cal_data() { + for (AltosEepromRecord record : ordered) { + if (record.cmd() == AltosLib.AO_LOG_FLIGHT) { + cal_data.set_tick(record.tick()); + cal_data.set_boost_tick(); + cal_data.set_state(AltosLib.ao_flight_pad); + break; + } + } + } + public AltosCalData cal_data() { if (cal_data == null) { cal_data = new AltosCalData(config_data()); - for (AltosEepromRecord record : ordered) { - if (record.cmd() == AltosLib.AO_LOG_FLIGHT) { - cal_data.set_tick(record.tick()); - cal_data.set_boost_tick(); - break; - } - } + init_cal_data(); } return cal_data; } public void capture_series(AltosDataListener listener) { - AltosCalData cal_data = cal_data(); - - cal_data.reset(); + if (cal_data == null) { + cal_data(); + } else { + cal_data.reset(); + init_cal_data(); + } listener.set_log_format(config_data().log_format); for (AltosEepromRecord record : ordered) { @@ -52,6 +61,10 @@ public class AltosEepromRecordSet implements AltosRecordSet { listener.finish(); } + public boolean valid() { + return valid; + } + public AltosEepromRecordSet(AltosEeprom eeprom) { this.eeprom = eeprom; @@ -71,6 +84,8 @@ public class AltosEepromRecordSet implements AltosRecordSet { case AltosLib.AO_LOG_FORMAT_TELEMEGA: case AltosLib.AO_LOG_FORMAT_TELEMEGA_3: case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD: + case AltosLib.AO_LOG_FORMAT_EASYMEGA_2: + case AltosLib.AO_LOG_FORMAT_TELEMEGA_4: record = new AltosEepromRecordMega(eeprom); break; case AltosLib.AO_LOG_FORMAT_TELEMETRUM: @@ -88,13 +103,20 @@ public class AltosEepromRecordSet implements AltosRecordSet { case AltosLib.AO_LOG_FORMAT_TELEFIRETWO: record = new AltosEepromRecordFireTwo(eeprom); break; + case AltosLib.AO_LOG_FORMAT_MICROPEAK2: + record = new AltosEepromRecordMicroPeak2(eeprom); + break; } + ordered = new TreeSet(); + if (record == null) { System.out.printf("failed to parse log format %d\n", config_data.log_format); + valid = false; return; } - ordered = new TreeSet(); + valid = true; + int tick = 0; boolean first = true;