X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosEepromRecordSet.java;h=5e2adba34c00ae9cf4e4a9915f52d8b531d75252;hb=8554da3b6c05c1094045f4fb21b43c183029408f;hp=7b111ed3d18d9d0cfa86df3eeb21d1321eba6001;hpb=78b4bf77fca96bef2cce443ad4c9544ae83f0acc;p=fw%2Faltos diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index 7b111ed3..5e2adba3 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -12,15 +12,16 @@ * General Public License for more details. */ -package org.altusmetrum.altoslib_11; +package org.altusmetrum.altoslib_13; import java.io.*; import java.util.*; public class AltosEepromRecordSet implements AltosRecordSet { - AltosEepromNew eeprom; + AltosEeprom eeprom; TreeSet ordered; AltosCalData cal_data; + boolean valid; public AltosConfigData config_data() { return eeprom.config_data(); @@ -44,13 +45,19 @@ 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 AltosEepromRecordSet(AltosEepromNew eeprom) { + public boolean valid() { + return valid; + } + + public AltosEepromRecordSet(AltosEeprom eeprom) { this.eeprom = eeprom; AltosConfigData config_data = eeprom.config_data(); @@ -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: @@ -75,7 +84,8 @@ public class AltosEepromRecordSet implements AltosRecordSet { break; case AltosLib.AO_LOG_FORMAT_TELEMINI2: case AltosLib.AO_LOG_FORMAT_TELEMINI3: - case AltosLib.AO_LOG_FORMAT_EASYMINI: + case AltosLib.AO_LOG_FORMAT_EASYMINI1: + case AltosLib.AO_LOG_FORMAT_EASYMINI2: record = new AltosEepromRecordMini(eeprom); break; case AltosLib.AO_LOG_FORMAT_TELEGPS: @@ -84,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) { @@ -107,13 +124,11 @@ 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 { - this(new AltosEepromNew(input)); + this(new AltosEeprom(input)); } }