X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosEepromFile.java;h=957c826a019098ec17bdce98be1ffb5b6cd1d052;hp=60ab2573cc70e8021a638d19ca6fce06b64838b6;hb=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a;hpb=488a527267decece48e6682e0e0c7fc29cbed329 diff --git a/altoslib/AltosEepromFile.java b/altoslib/AltosEepromFile.java index 60ab2573..957c826a 100644 --- a/altoslib/AltosEepromFile.java +++ b/altoslib/AltosEepromFile.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_2; +package org.altusmetrum.altoslib_11; import java.io.*; import java.util.*; @@ -72,19 +73,30 @@ public class AltosEepromFile extends AltosStateIterable { headers = new AltosEepromIterable(AltosEepromHeader.read(input)); start = headers.state(); - start.set_state(AltosLib.ao_flight_pad); + if (start.state() != AltosLib.ao_flight_stateless) + start.set_state(AltosLib.ao_flight_pad); + + if (start.log_format == AltosLib.MISSING) { + if (start.product != null) { + if (start.product.startsWith("TeleMetrum")) + start.log_format = AltosLib.AO_LOG_FORMAT_FULL; + else if (start.product.startsWith("TeleMini")) + start.log_format = AltosLib.AO_LOG_FORMAT_TINY; + } + } switch (start.log_format) { case AltosLib.AO_LOG_FORMAT_FULL: body = new AltosEepromIterable(AltosEepromTM.read(input)); break; case AltosLib.AO_LOG_FORMAT_TINY: - body = new AltosEepromIterable(AltosEepromTm.read(input)); + body = new AltosEepromIterable(AltosEepromTMini.read(input)); break; case AltosLib.AO_LOG_FORMAT_TELEMETRY: case AltosLib.AO_LOG_FORMAT_TELESCIENCE: case AltosLib.AO_LOG_FORMAT_TELEMEGA: - body = new AltosEepromIterable(AltosEepromMega.read(input)); + case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD: + body = new AltosEepromIterable(AltosEepromMega.read(input, start.log_format)); break; case AltosLib.AO_LOG_FORMAT_TELEMETRUM: body = new AltosEepromIterable(AltosEepromMetrum2.read(input)); @@ -93,6 +105,9 @@ public class AltosEepromFile extends AltosStateIterable { case AltosLib.AO_LOG_FORMAT_EASYMINI: body = new AltosEepromIterable(AltosEepromMini.read(input)); break; + case AltosLib.AO_LOG_FORMAT_TELEGPS: + body = new AltosEepromIterable(AltosEepromGPS.read(input)); + break; default: body = new AltosEepromIterable(new LinkedList()); break; @@ -103,7 +118,7 @@ public class AltosEepromFile extends AltosStateIterable { for (AltosEeprom eeprom : body) { eeprom.update_state(state); state.finish_update(); - if (state.state >= AltosLib.ao_flight_boost) { + if (state.state() >= AltosLib.ao_flight_boost) { start.set_boost_tick(state.tick); break; } @@ -120,4 +135,4 @@ public class AltosEepromFile extends AltosStateIterable { } return new AltosEepromIterator(state, i); } -} \ No newline at end of file +}