X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosEepromRecordSet.java;h=5e2adba34c00ae9cf4e4a9915f52d8b531d75252;hb=8554da3b6c05c1094045f4fb21b43c183029408f;hp=48e90c055e0269be6136385ac50935e411d4505e;hpb=c8dbcaf69cd538a31ab6e2b568237ae7c8656a9a;p=fw%2Faltos diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index 48e90c05..5e2adba3 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -12,7 +12,7 @@ * General Public License for more details. */ -package org.altusmetrum.altoslib_12; +package org.altusmetrum.altoslib_13; import java.io.*; import java.util.*; @@ -21,6 +21,7 @@ public class AltosEepromRecordSet implements AltosRecordSet { AltosEeprom eeprom; TreeSet ordered; AltosCalData cal_data; + boolean valid; public AltosConfigData config_data() { return eeprom.config_data(); @@ -44,12 +45,18 @@ public class AltosEepromRecordSet implements AltosRecordSet { AltosCalData cal_data = cal_data(); cal_data.reset(); + listener.set_log_format(config_data().log_format); + for (AltosEepromRecord record : ordered) { record.provide_data(listener, cal_data); } listener.finish(); } + public boolean valid() { + return valid; + } + public AltosEepromRecordSet(AltosEeprom eeprom) { this.eeprom = eeprom; @@ -67,7 +74,9 @@ public class AltosEepromRecordSet implements AltosRecordSet { case AltosLib.AO_LOG_FORMAT_TELEMETRY: case AltosLib.AO_LOG_FORMAT_TELESCIENCE: 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: record = new AltosEepromRecordMega(eeprom); break; case AltosLib.AO_LOG_FORMAT_TELEMETRUM: @@ -85,17 +94,24 @@ 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; - for (;;) { + do { int t = record.tick(); if (first) { @@ -108,10 +124,8 @@ public class AltosEepromRecordSet implements AltosRecordSet { } record.wide_tick = tick; ordered.add(record); - if (!record.hasNext()) - break; record = record.next(); - } + } while (record != null); } public AltosEepromRecordSet(InputStream input) throws IOException {