altoslib: Remove more AltosRecord based files
authorKeith Packard <keithp@keithp.com>
Thu, 5 Sep 2013 22:02:47 +0000 (15:02 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 5 Sep 2013 22:02:47 +0000 (15:02 -0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosEepromBody.java [deleted file]
altoslib/AltosEepromBodyIterable.java [deleted file]
altoslib/AltosEepromGPS.java [deleted file]
altoslib/AltosEepromHeaderIterable.java [deleted file]
altoslib/AltosEepromMegaIterable.java [deleted file]

diff --git a/altoslib/AltosEepromBody.java b/altoslib/AltosEepromBody.java
deleted file mode 100644 (file)
index 444102c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright © 2013 Keith Packard <keithp@keithp.com>
- *
- * 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.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-package org.altusmetrum.altoslib_2;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-
-public class AltosEepromBody implements AltosEeprom, AltosStateUpdate {
-
-       public void update_state(AltosState state) {
-       }
-
-       public void write(PrintStream out) {
-       }
-}
\ No newline at end of file
diff --git a/altoslib/AltosEepromBodyIterable.java b/altoslib/AltosEepromBodyIterable.java
deleted file mode 100644 (file)
index 4d32c66..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright © 2013 Keith Packard <keithp@keithp.com>
- *
- * 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.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-package org.altusmetrum.altoslib_2;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-
-public class AltosEepromBodyIterable {
-       LinkedList<AltosEepromBody>     bodies;
-
-       
-}
\ No newline at end of file
diff --git a/altoslib/AltosEepromGPS.java b/altoslib/AltosEepromGPS.java
deleted file mode 100644 (file)
index 43ed339..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright © 2011 Keith Packard <keithp@keithp.com>
- *
- * 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.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-package org.altusmetrum.altoslib_2;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-
-public class AltosEepromGPS extends AltosEeprom {
-       public static final int record_length = 16;
-
-       public int record_length() { return record_length; }
-
-       /* AO_LOG_FLIGHT elements */
-       public int flight() { return data16(0); }
-       public int ground_accel() { return data16(2); }
-       public int ground_pres() { return data32(4); }
-       public int ground_temp() { return data32(8); }
-
-       /* AO_LOG_STATE elements */
-       public int state() { return data16(0); }
-       public int reason() { return data16(2); }
-
-       /* AO_LOG_SENSOR elements */
-       public int pres() { return data32(0); }
-       public int temp() { return data32(4); }
-       public int accel() { return data16(8); }
-
-       /* AO_LOG_TEMP_VOLT elements */
-       public int v_batt() { return data16(0); }
-       public int sense_a() { return data16(2); }
-       public int sense_m() { return data16(4); }
-
-       /* AO_LOG_GPS_POS elements */
-       public int latitude() { return data32(0); }
-       public int longitude() { return data32(4); }
-       public int altitude() { return data16(8); }
-
-       /* AO_LOG_GPS_TIME elements */
-       public int hour() { return data8(0); }
-       public int minute() { return data8(1); }
-       public int second() { return data8(2); }
-       public int flags() { return data8(3); }
-       public int year() { return data8(4); }
-       public int month() { return data8(5); }
-       public int day() { return data8(6); }
-       
-       /* AO_LOG_GPS_SAT elements */
-       public int nsat() { return data8(0); }
-       public int more() { return data8(1); }
-       public int svid(int n) { return data8(2 + n * 2); }
-       public int c_n(int n) { return data8(2 + n * 2 + 1); }
-
-       public AltosEepromMetrum2 (AltosEepromChunk chunk, int start) throws ParseException {
-               parse_chunk(chunk, start);
-       }
-
-       public void update_state(AltosState state) {
-               super.update_state(state);
-
-               AltosGPS        gps;
-
-               /* Flush any pending GPS changes */
-               if (state.gps_pending) {
-                       switch (cmd) {
-                       case AltosLib.AO_LOG_GPS_POS:
-                       case AltosLib.AO_LOG_GPS_LAT:
-                       case AltosLib.AO_LOG_GPS_LON:
-                       case AltosLib.AO_LOG_GPS_ALT:
-                       case AltosLib.AO_LOG_GPS_SAT:
-                       case AltosLib.AO_LOG_GPS_DATE:
-                               break;
-                       default:
-                               state.set_temp_gps();
-                               break;
-                       }
-               }
-
-               switch (cmd) {
-               case AltosLib.AO_LOG_FLIGHT:
-                       state.set_flight(flight());
-                       state.set_ground_accel(ground_accel());
-                       state.set_ground_pressure(ground_pres());
-//                     state.set_temperature(ground_temp() / 100.0);
-                       break;
-               case AltosLib.AO_LOG_STATE:
-                       state.set_state(state());
-                       break;
-               case AltosLib.AO_LOG_SENSOR:
-                       state.set_ms5607(pres(), temp());
-                       state.set_accel(accel());
-
-                       break;
-               case AltosLib.AO_LOG_TEMP_VOLT:
-                       state.set_battery_voltage(AltosConvert.mega_battery_voltage(v_batt()));
-
-                       state.set_apogee_voltage(AltosConvert.mega_pyro_voltage(sense_a()));
-                       state.set_main_voltage(AltosConvert.mega_pyro_voltage(sense_m()));
-
-                       break;
-               case AltosLib.AO_LOG_GPS_POS:
-                       gps = state.make_temp_gps();
-                       gps.lat = latitude() / 1e7;
-                       gps.lon = longitude() / 1e7;
-                       gps.alt = altitude();
-                       break;
-               case AltosLib.AO_LOG_GPS_TIME:
-                       gps = state.make_temp_gps();
-
-                       gps.hour = hour();
-                       gps.minute = minute();
-                       gps.second = second();
-
-                       int flags = flags();
-
-                       gps.connected = (flags & AltosLib.AO_GPS_RUNNING) != 0;
-                       gps.locked = (flags & AltosLib.AO_GPS_VALID) != 0;
-                       gps.nsat = (flags & AltosLib.AO_GPS_NUM_SAT_MASK) >>
-                               AltosLib.AO_GPS_NUM_SAT_SHIFT;
-
-                       gps.year = year();
-                       gps.month = month();
-                       gps.day = day();
-                       break;
-               case AltosLib.AO_LOG_GPS_SAT:
-                       gps = state.make_temp_gps();
-
-                       int n = nsat();
-                       for (int i = 0; i < n; i++)
-                               gps.add_sat(svid(i), c_n(i));
-                       break;
-               }
-       }
-
-       public AltosEepromMetrum2 (String line) {
-               parse_string(line);
-       }
-
-       static public LinkedList<AltosEeprom> read(FileInputStream input) {
-               LinkedList<AltosEeprom> megas = new LinkedList<AltosEeprom>();
-
-               for (;;) {
-                       try {
-                               String line = AltosLib.gets(input);
-                               if (line == null)
-                                       break;
-                               try {
-                                       AltosEepromMetrum2 mega = new AltosEepromMetrum2(line);
-                                       if (mega.cmd != AltosLib.AO_LOG_INVALID)
-                                               megas.add(mega);
-                               } catch (Exception e) {
-                                       System.out.printf ("exception\n");
-                               }
-                       } catch (IOException ie) {
-                               break;
-                       }
-               }
-
-               return megas;
-       }
-}
diff --git a/altoslib/AltosEepromHeaderIterable.java b/altoslib/AltosEepromHeaderIterable.java
deleted file mode 100644 (file)
index 920a438..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright © 2013 Keith Packard <keithp@keithp.com>
- *
- * 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.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-package org.altusmetrum.altoslib_2;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-
-public class AltosEepromHeaderIterable implements Iterable<AltosEepromHeader> {
-       public LinkedList<AltosEepromHeader> headers;
-
-       public void write(PrintStream out) {
-               AltosEepromHeader.write(out, headers);
-       }
-
-       public AltosState state() {
-               AltosState      state = new AltosState();
-
-               for (AltosEepromHeader header : headers)
-                       header.update_state(state);
-               return state;
-       }
-
-       public AltosEepromHeaderIterable(FileInputStream input) {
-               headers = AltosEepromHeader.read(input);
-       }
-
-       public Iterator<AltosEepromHeader> iterator() {
-               if (headers == null)
-                       headers = new LinkedList<AltosEepromHeader>();
-               return headers.iterator();
-       }
-}
\ No newline at end of file
diff --git a/altoslib/AltosEepromMegaIterable.java b/altoslib/AltosEepromMegaIterable.java
deleted file mode 100644 (file)
index 8243aa8..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * Copyright © 2010 Keith Packard <keithp@keithp.com>
- *
- * 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.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-
-package org.altusmetrum.altoslib_2;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-
-public class AltosEepromMegaIterable extends AltosRecordIterable {
-
-       static final int        seen_flight = 1;
-       static final int        seen_sensor = 2;
-       static final int        seen_temp_volt = 4;
-       static final int        seen_deploy = 8;
-       static final int        seen_gps_time = 16;
-       static final int        seen_gps_lat = 32;
-       static final int        seen_gps_lon = 64;
-
-       static final int        seen_basic = seen_flight|seen_sensor;
-
-       boolean                 has_accel;
-       boolean                 has_gps;
-       boolean                 has_ignite;
-
-       AltosEepromMega flight_record;
-       AltosEepromMega gps_date_record;
-
-       TreeSet<AltosOrderedMegaRecord> records;
-
-       AltosMs5607             baro;
-
-       LinkedList<AltosRecord> list;
-
-       class EepromState {
-               int     seen;
-               int     n_pad_samples;
-               double  ground_pres;
-               int     gps_tick;
-               int     boost_tick;
-               int     sensor_tick;
-
-               EepromState() {
-                       seen = 0;
-                       n_pad_samples = 0;
-                       ground_pres = 0.0;
-                       gps_tick = 0;
-               }
-       }
-
-       void update_state(AltosRecordMM state, AltosEepromMega record, EepromState eeprom) {
-               state.tick = record.tick;
-               switch (record.cmd) {
-               case AltosLib.AO_LOG_FLIGHT:
-                       eeprom.seen |= seen_flight;
-                       state.ground_accel = record.ground_accel();
-                       state.flight_accel = record.ground_accel();
-                       state.ground_pres = baro.set(record.ground_pres(), record.ground_temp());
-                       state.flight_pres = state.ground_pres;
-                       state.flight = record.data16(0);
-                       eeprom.boost_tick = record.tick;
-                       break;
-               case AltosLib.AO_LOG_SENSOR:
-                       state.accel = record.accel();
-                       baro.set(record.pres(), record.temp());
-                       state.pres = baro.pa;
-                       state.temp = baro.cc;
-                       state.imu = new AltosIMU();
-                       state.imu.accel_x = record.accel_x();
-                       state.imu.accel_y = record.accel_y();
-                       state.imu.accel_z = record.accel_z();
-                       state.imu.gyro_x = record.gyro_x();
-                       state.imu.gyro_y = record.gyro_y();
-                       state.imu.gyro_z = record.gyro_z();
-                       state.mag = new AltosMag();
-                       state.mag.x = record.mag_x();
-                       state.mag.y = record.mag_y();
-                       state.mag.z = record.mag_z();
-                       if (state.state < AltosLib.ao_flight_boost) {
-                               eeprom.n_pad_samples++;
-                               eeprom.ground_pres += state.pres;
-                               state.ground_pres = (int) (eeprom.ground_pres / eeprom.n_pad_samples);
-                               state.flight_pres = state.ground_pres;
-                       } else {
-                               state.flight_pres = (state.flight_pres * 15 + state.pres) / 16;
-                       }
-                       state.flight_accel = (state.flight_accel * 15 + state.accel) / 16;
-                       if ((eeprom.seen & seen_sensor) == 0)
-                               eeprom.sensor_tick = record.tick - 1;
-                       state.flight_vel += (state.accel_plus_g - state.accel) * (record.tick - eeprom.sensor_tick);
-                       eeprom.seen |= seen_sensor;
-                       eeprom.sensor_tick = record.tick;
-                       has_accel = true;
-                       break;
-               case AltosLib.AO_LOG_TEMP_VOLT:
-                       state.v_batt = record.v_batt();
-                       state.v_pyro = record.v_pbatt();
-                       for (int i = 0; i < record.nsense(); i++)
-                               state.sense[i] = record.sense(i);
-                       eeprom.seen |= seen_temp_volt;
-                       break;
-               case AltosLib.AO_LOG_STATE:
-                       state.state = record.state();
-                       break;
-               case AltosLib.AO_LOG_GPS_TIME:
-                       eeprom.gps_tick = state.tick;
-                       state.gps = new AltosGPS();
-
-                       state.gps.lat = record.latitude() / 1e7;
-                       state.gps.lon = record.longitude() / 1e7;
-                       state.gps.alt = record.altitude();
-                       state.gps.year = record.year() + 2000;
-                       state.gps.month = record.month();
-                       state.gps.day = record.day();
-
-                       state.gps.hour = record.hour();
-                       state.gps.minute = record.minute();
-                       state.gps.second = record.second();
-
-                       int flags = record.flags();
-                       state.gps.connected = (flags & AltosLib.AO_GPS_RUNNING) != 0;
-                       state.gps.locked = (flags & AltosLib.AO_GPS_VALID) != 0;
-                       state.gps.nsat = (flags & AltosLib.AO_GPS_NUM_SAT_MASK) >>
-                               AltosLib.AO_GPS_NUM_SAT_SHIFT;
-                       state.gps_sequence++;
-                       has_gps = true;
-                       eeprom.seen |= seen_gps_time | seen_gps_lat | seen_gps_lon;
-                       break;
-               case AltosLib.AO_LOG_GPS_SAT:
-                       if (state.tick == eeprom.gps_tick) {
-                               int nsat = record.nsat();
-                               for (int i = 0; i < nsat; i++)
-                                       state.gps.add_sat(record.svid(i), record.c_n(i));
-                       }
-                       break;
-               case AltosLib.AO_LOG_CONFIG_VERSION:
-                       break;
-               case AltosLib.AO_LOG_MAIN_DEPLOY:
-                       break;
-               case AltosLib.AO_LOG_APOGEE_DELAY:
-                       break;
-               case AltosLib.AO_LOG_RADIO_CHANNEL:
-                       break;
-               case AltosLib.AO_LOG_CALLSIGN:
-                       state.callsign = record.data;
-                       break;
-               case AltosLib.AO_LOG_ACCEL_CAL:
-                       state.accel_plus_g = record.config_a;
-                       state.accel_minus_g = record.config_b;
-                       break;
-               case AltosLib.AO_LOG_RADIO_CAL:
-                       break;
-               case AltosLib.AO_LOG_MANUFACTURER:
-                       break;
-               case AltosLib.AO_LOG_PRODUCT:
-                       break;
-               case AltosLib.AO_LOG_SERIAL_NUMBER:
-                       state.serial = record.config_a;
-                       break;
-               case AltosLib.AO_LOG_SOFTWARE_VERSION:
-                       break;
-               case AltosLib.AO_LOG_BARO_RESERVED:
-                       baro.reserved = record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_SENS:
-                       baro.sens =record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_OFF:
-                       baro.off =record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_TCS:
-                       baro.tcs =record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_TCO:
-                       baro.tco =record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_TREF:
-                       baro.tref =record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_TEMPSENS:
-                       baro.tempsens =record.config_a;
-                       break;
-               case AltosLib.AO_LOG_BARO_CRC:
-                       baro.crc =record.config_a;
-                       break;
-               }
-               state.seen |= eeprom.seen;
-       }
-
-       LinkedList<AltosRecord> make_list() {
-               LinkedList<AltosRecord>         list = new LinkedList<AltosRecord>();
-               Iterator<AltosOrderedMegaRecord>        iterator = records.iterator();
-               AltosOrderedMegaRecord          record = null;
-               AltosRecordMM                   state = new AltosRecordMM();
-               //boolean                               last_reported = false;
-               EepromState                     eeprom = new EepromState();
-
-               state.state = AltosLib.ao_flight_pad;
-               state.accel_plus_g = 15758;
-               state.accel_minus_g = 16294;
-
-               /* Pull in static data from the flight and gps_date records */
-               if (flight_record != null)
-                       update_state(state, flight_record, eeprom);
-               if (gps_date_record != null)
-                       update_state(state, gps_date_record, eeprom);
-
-               while (iterator.hasNext()) {
-                       record = iterator.next();
-                       if ((eeprom.seen & seen_basic) == seen_basic && record.tick != state.tick) {
-                               AltosRecordMM r = state.clone();
-                               r.time = (r.tick - eeprom.boost_tick) / 100.0;
-                               list.add(r);
-                       }
-                       update_state(state, record, eeprom);
-               }
-               AltosRecordMM r = state.clone();
-               r.time = (r.tick - eeprom.boost_tick) / 100.0;
-               list.add(r);
-               return list;
-       }
-
-       public Iterator<AltosRecord> iterator() {
-               if (list == null)
-                       list = make_list();
-               return list.iterator();
-       }
-
-       public boolean has_gps() { return has_gps; }
-       public boolean has_accel() { return has_accel; }
-       public boolean has_ignite() { return has_ignite; }
-
-       public void write_comments(PrintStream out) {
-               Iterator<AltosOrderedMegaRecord>        iterator = records.iterator();
-               out.printf("# Comments\n");
-               while (iterator.hasNext()) {
-                       AltosOrderedMegaRecord  record = iterator.next();
-                       switch (record.cmd) {
-                       case AltosLib.AO_LOG_CONFIG_VERSION:
-                               out.printf("# Config version: %s\n", record.data);
-                               break;
-                       case AltosLib.AO_LOG_MAIN_DEPLOY:
-                               out.printf("# Main deploy: %s\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_APOGEE_DELAY:
-                               out.printf("# Apogee delay: %s\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_RADIO_CHANNEL:
-                               out.printf("# Radio channel: %s\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_CALLSIGN:
-                               out.printf("# Callsign: %s\n", record.data);
-                               break;
-                       case AltosLib.AO_LOG_ACCEL_CAL:
-                               out.printf ("# Accel cal: %d %d\n", record.config_a, record.config_b);
-                               break;
-                       case AltosLib.AO_LOG_RADIO_CAL:
-                               out.printf ("# Radio cal: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_MAX_FLIGHT_LOG:
-                               out.printf ("# Max flight log: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_MANUFACTURER:
-                               out.printf ("# Manufacturer: %s\n", record.data);
-                               break;
-                       case AltosLib.AO_LOG_PRODUCT:
-                               out.printf ("# Product: %s\n", record.data);
-                               break;
-                       case AltosLib.AO_LOG_SERIAL_NUMBER:
-                               out.printf ("# Serial number: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_SOFTWARE_VERSION:
-                               out.printf ("# Software version: %s\n", record.data);
-                               break;
-                       case AltosLib.AO_LOG_BARO_RESERVED:
-                               out.printf ("# Baro reserved: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_SENS:
-                               out.printf ("# Baro sens: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_OFF:
-                               out.printf ("# Baro off: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_TCS:
-                               out.printf ("# Baro tcs: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_TCO:
-                               out.printf ("# Baro tco: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_TREF:
-                               out.printf ("# Baro tref: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_TEMPSENS:
-                               out.printf ("# Baro tempsens: %d\n", record.config_a);
-                               break;
-                       case AltosLib.AO_LOG_BARO_CRC:
-                               out.printf ("# Baro crc: %d\n", record.config_a);
-                               break;
-                       }
-               }
-       }
-
-       /*
-        * Read the whole file, dumping records into a RB tree so
-        * we can enumerate them in time order -- the eeprom data
-        * are sometimes out of order with GPS data getting timestamps
-        * matching the first packet out of the GPS unit but not
-        * written until the final GPS packet has been received.
-        */
-       public AltosEepromMegaIterable (FileInputStream input) {
-               records = new TreeSet<AltosOrderedMegaRecord>();
-
-               AltosOrderedMegaRecord last_gps_time = null;
-
-               baro = new AltosMs5607();
-
-               int index = 0;
-               int prev_tick = 0;
-               boolean prev_tick_valid = false;
-               boolean missing_time = false;
-
-               try {
-                       for (;;) {
-                               String line = AltosLib.gets(input);
-                               if (line == null)
-                                       break;
-                               AltosOrderedMegaRecord record = new AltosOrderedMegaRecord(line, index++, prev_tick, prev_tick_valid);
-                               if (record.cmd == AltosLib.AO_LOG_INVALID)
-                                       continue;
-                               prev_tick = record.tick;
-                               if (record.cmd < AltosLib.AO_LOG_CONFIG_VERSION)
-                                       prev_tick_valid = true;
-                               if (record.cmd == AltosLib.AO_LOG_FLIGHT) {
-                                       flight_record = record;
-                                       continue;
-                               }
-
-                               records.add(record);
-
-                               /* Bail after reading the 'landed' record; we're all done */
-                               if (record.cmd == AltosLib.AO_LOG_STATE &&
-                                   record.state() == AltosLib.ao_flight_landed)
-                                       break;
-                       }
-               } catch (IOException io) {
-               } catch (ParseException pe) {
-               }
-               try {
-                       input.close();
-               } catch (IOException ie) {
-               }
-       }
-}