altosui, altoslib: Move eeprom download code to altoslib
authorKeith Packard <keithp@keithp.com>
Tue, 12 Nov 2013 05:37:57 +0000 (14:37 +0900)
committerKeith Packard <keithp@keithp.com>
Tue, 12 Nov 2013 05:37:57 +0000 (14:37 +0900)
This should make adding eeprom downloading to altosdroid easier

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosEepromDownload.java [new file with mode: 0644]
altoslib/AltosEepromList.java [new file with mode: 0644]
altoslib/Makefile.am
altosui/AltosEepromDownload.java [deleted file]
altosui/AltosEepromList.java [deleted file]
altosui/Makefile.am
altosuilib/Makefile.am

diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java
new file mode 100644 (file)
index 0000000..542defe
--- /dev/null
@@ -0,0 +1,261 @@
+/*
+ * 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.*;
+import java.util.concurrent.*;
+
+public class AltosEepromDownload implements Runnable {
+
+       AltosLink               link;
+       boolean                 remote;
+       Thread                  eeprom_thread;
+       AltosEepromMonitor      monitor;
+
+       boolean                 want_file;
+       FileWriter              eeprom_file;
+       LinkedList<String>      eeprom_pending;
+
+       AltosEepromList         flights;
+       boolean                 success;
+       ParseException          parse_exception;
+       AltosState              state;
+
+       private void FlushPending() throws IOException {
+               for (String s : flights.config_data) {
+                       eeprom_file.write(s);
+                       eeprom_file.write('\n');
+               }
+
+               for (String s : eeprom_pending)
+                       eeprom_file.write(s);
+       }
+
+       private void CheckFile(boolean force) throws IOException {
+               if (eeprom_file != null)
+                       return;
+               if (force || (state.flight != 0 && want_file)) {
+                       AltosFile               eeprom_name;
+                       AltosGPS                gps = state.gps;
+
+                       if (gps != null &&
+                           gps.year != AltosLib.MISSING &&
+                           gps.month != AltosLib.MISSING &&
+                           gps.day != AltosLib.MISSING)
+                       {
+                               eeprom_name = new AltosFile(gps.year, gps.month, gps.day,
+                                                           state.serial, state.flight, "eeprom");
+                       } else
+                               eeprom_name = new AltosFile(state.serial, state.flight, "eeprom");
+
+                       eeprom_file = new FileWriter(eeprom_name);
+                       if (eeprom_file != null) {
+                               monitor.set_filename(eeprom_name.getName());
+                               FlushPending();
+                               eeprom_pending = null;
+                       }
+               }
+       }
+
+       boolean                 done;
+       boolean                 start;
+
+       void LogEeprom(AltosEeprom r) throws IOException {
+               if (r.cmd != AltosLib.AO_LOG_INVALID) {
+                       String line = r.string();
+                       if (eeprom_file != null)
+                               eeprom_file.write(line);
+                       else
+                               eeprom_pending.add(line);
+               }
+       }
+
+       void CaptureEeprom(AltosEepromChunk eechunk, int log_format) throws IOException, ParseException {
+               boolean any_valid = false;
+               boolean got_flight = false;
+
+               int record_length = 8;
+
+               state.set_serial(flights.config_data.serial);
+               monitor.set_serial(flights.config_data.serial);
+
+               for (int i = 0; i < AltosEepromChunk.chunk_size && !done; i += record_length) {
+                       AltosEeprom r = eechunk.eeprom(i, log_format, state);
+
+                       if (r == null)
+                               continue;
+
+                       record_length = r.record_length();
+
+                       r.update_state(state);
+
+                       if (!got_flight && state.flight != AltosLib.MISSING)
+                               monitor.set_flight(state.flight);
+
+                       /* Monitor state transitions to update display */
+                       if (state.state != AltosLib.ao_flight_invalid &&
+                           state.state <= AltosLib.ao_flight_landed)
+                       {
+                               if (state.state > AltosLib.ao_flight_pad)
+                                       want_file = true;
+                               if (state.state == AltosLib.ao_flight_landed)
+                                       done = true;
+                       }
+
+                       if (state.gps != null)
+                               want_file = true;
+
+                       if (r.valid) {
+                               any_valid = true;
+                               LogEeprom(r);
+                       }
+               }
+               if (!any_valid)
+                       done = true;
+
+               CheckFile(false);
+       }
+       
+       void CaptureLog(AltosEepromLog log) throws IOException, InterruptedException, TimeoutException, ParseException {
+               int                     block, state_block = 0;
+               int                     log_format = flights.config_data.log_format;
+
+               state = new AltosState();
+
+               done = false;
+               start = true;
+
+               if (flights.config_data.serial < 0)
+                       throw new IOException("no serial number found");
+
+               /* Reset per-capture variables */
+               want_file = false;
+               eeprom_file = null;
+               eeprom_pending = new LinkedList<String>();
+
+               /* Set serial number in the monitor dialog window */
+               /* Now scan the eeprom, reading blocks of data and converting to .eeprom file form */
+
+               state_block = log.start_block;
+               for (block = log.start_block; !done && block < log.end_block; block++) {
+                       monitor.set_value(state.state_name(),
+                                         state.state,
+                                         block - state_block,
+                                         block - log.start_block);
+
+                       AltosEepromChunk        eechunk = new AltosEepromChunk(link, block, block == log.start_block);
+
+                       /*
+                        * Guess what kind of data is there if the device
+                        * didn't tell us
+                        */
+
+                       if (log_format == AltosLib.AO_LOG_FORMAT_UNKNOWN) {
+                               if (block == log.start_block) {
+                                       if (eechunk.data(0) == AltosLib.AO_LOG_FLIGHT)
+                                               log_format = AltosLib.AO_LOG_FORMAT_FULL;
+                                       else
+                                               log_format = AltosLib.AO_LOG_FORMAT_TINY;
+                               }
+                       }
+
+                       CaptureEeprom (eechunk, log_format);
+               }
+               CheckFile(true);
+               if (eeprom_file != null) {
+                       eeprom_file.flush();
+                       eeprom_file.close();
+               }
+       }
+
+       public void run () {
+               try {
+                       boolean failed = false;
+                       if (remote)
+                               link.start_remote();
+
+                       for (AltosEepromLog log : flights) {
+                               parse_exception = null;
+                               if (log.selected) {
+                                       monitor.reset();
+                                       try {
+                                               CaptureLog(log);
+                                       } catch (ParseException e) {
+                                               parse_exception = e;
+                                       }
+                               }
+                               if (parse_exception != null) {
+                                       failed = true;
+                                       monitor.show_message(String.format("Flight %d download error\n%s\nValid log data saved",
+                                                                          log.flight,
+                                                                          parse_exception.getMessage()),
+                                                            link.name,
+                                                            AltosEepromMonitor.WARNING_MESSAGE);
+                               }
+                       }
+                       success = !failed;
+               } catch (IOException ee) {
+                       monitor.show_message(ee.getLocalizedMessage(),
+                                            link.name,
+                                            AltosEepromMonitor.ERROR_MESSAGE);
+               } catch (InterruptedException ie) {
+                       monitor.show_message(String.format("Connection to \"%s\" interrupted",
+                                                          link.name),
+                                            "Connection Interrupted",
+                                            AltosEepromMonitor.ERROR_MESSAGE);
+               } catch (TimeoutException te) {
+                       monitor.show_message(String.format("Connection to \"%s\" failed",
+                                                          link.name),
+                                            "Connection Failed",
+                                            AltosEepromMonitor.ERROR_MESSAGE);
+               } finally {
+                       if (remote) {
+                               try {
+                                       link.stop_remote();
+                               } catch (InterruptedException ie) {
+                               }
+                       }
+                       link.flush_output();
+               }
+               monitor.done(success);
+       }
+
+       public void start() {
+               eeprom_thread = new Thread(this);
+               eeprom_thread.start();
+       }
+
+       public AltosEepromDownload(AltosEepromMonitor given_monitor,
+                                  AltosLink given_link,
+                                  boolean given_remote,
+                                  AltosEepromList given_flights) {
+
+               monitor = given_monitor;
+               link = given_link;
+               remote = given_remote;
+               flights = given_flights;
+               success = false;
+
+               monitor.set_states(AltosLib.ao_flight_boost, AltosLib.ao_flight_landed);
+
+               monitor.set_thread(eeprom_thread);
+               monitor.start();
+       }
+}
diff --git a/altoslib/AltosEepromList.java b/altoslib/AltosEepromList.java
new file mode 100644 (file)
index 0000000..763bd1e
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * 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.*;
+import java.util.concurrent.*;
+
+/*
+ * Temporary structure to hold the list of stored flights;
+ * each of these will be queried in turn to generate more
+ * complete information
+ */
+
+class AltosEepromFlight {
+       int     flight;
+       int     start;
+       int     end;
+
+       public AltosEepromFlight(int in_flight, int in_start, int in_end) {
+               flight = in_flight;
+               start = in_start;
+               end = in_end;
+       }
+}
+
+/*
+ * Construct a list of flights available in a connected device
+ */
+
+public class AltosEepromList extends ArrayList<AltosEepromLog> {
+       public AltosConfigData  config_data;
+
+       public AltosEepromList (AltosLink link, boolean remote)
+               throws IOException, InterruptedException, TimeoutException
+       {
+               try {
+                       if (remote)
+                               link.start_remote();
+                       config_data = new AltosConfigData (link);
+//                     if (config_data.serial == 0)
+//                             throw new IOException("no serial number found");
+
+                       ArrayList<AltosEepromFlight> flights = new ArrayList<AltosEepromFlight>();
+
+                       if (config_data.flight_log_max != 0 || config_data.log_format != 0) {
+
+                               /* Devices with newer firmware will support the 'l'
+                                * command which will list the region of storage
+                                * occupied by each available flight
+                                */
+                               link.printf("l\n");
+                               for (;;) {
+                                       String line = link.get_reply(5000);
+                                       if (line == null)
+                                               throw new TimeoutException();
+                                       if (line.contains("done"))
+                                               break;
+                                       if (line.contains("Syntax"))
+                                               continue;
+                                       String[] tokens = line.split("\\s+");
+                                       if (tokens.length < 6)
+                                               break;
+
+                                       int     flight = -1, start = -1, end = -1;
+                                       try {
+                                               if (tokens[0].equals("flight"))
+                                                       flight = AltosParse.parse_int(tokens[1]);
+                                               if (tokens[2].equals("start"))
+                                                       start = AltosParse.parse_hex(tokens[3]);
+                                               if (tokens[4].equals("end"))
+                                                       end = AltosParse.parse_hex(tokens[5]);
+                                               if (flight > 0 && start >= 0 && end > 0)
+                                                       flights.add(new AltosEepromFlight(flight, start, end));
+                                       } catch (ParseException pe) { System.out.printf("Parse error %s\n", pe.toString()); }
+                               }
+                       } else {
+
+                               /* Older devices will hold only a single
+                                * flight. This also assumes that any older
+                                * device will have a 1MB flash device
+                                */
+                               flights.add(new AltosEepromFlight(0, 0, 0xfff));
+                       }
+
+                       /* With the list of flights collected, collect more complete
+                        * information on them by reading the first block or two of
+                        * data. This will add GPS coordinates and a date. For older
+                        * firmware, this will also extract the flight number.
+                        */
+                       for (AltosEepromFlight flight : flights) {
+                               add(new AltosEepromLog(config_data, link,
+                                                      flight.flight, flight.start, flight.end));
+                       }
+               } finally {
+                       if (remote)
+                               link.stop_remote();
+                       link.flush_output();
+               }
+       }
+}
\ No newline at end of file
index 2cf7b63dd19de2b1c37f503604f1baf35fd54ada..6d3f3fc49862111f877bb000baaf60ae790e3284 100644 (file)
@@ -1,4 +1,4 @@
-AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation
+AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation -source 6
 
 JAVAROOT=bin
 
@@ -34,11 +34,13 @@ altoslib_JAVA = \
        AltosDebug.java \
        AltosEeprom.java \
        AltosEepromChunk.java \
+       AltosEepromDownload.java \
        AltosEepromFile.java \
        AltosEepromTM.java \
        AltosEepromTm.java \
        AltosEepromHeader.java \
        AltosEepromIterable.java \
+       AltosEepromList.java \
        AltosEepromLog.java \
        AltosEepromMega.java \
        AltosEepromMetrum2.java \
diff --git a/altosui/AltosEepromDownload.java b/altosui/AltosEepromDownload.java
deleted file mode 100644 (file)
index 6ce420d..0000000
+++ /dev/null
@@ -1,262 +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 altosui;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-import java.util.concurrent.*;
-import org.altusmetrum.altoslib_2.*;
-
-public class AltosEepromDownload implements Runnable {
-
-       AltosSerial             serial_line;
-       boolean                 remote;
-       Thread                  eeprom_thread;
-       AltosEepromMonitor      monitor;
-
-       boolean                 want_file;
-       FileWriter              eeprom_file;
-       LinkedList<String>      eeprom_pending;
-
-       AltosEepromList         flights;
-       boolean                 success;
-       ParseException          parse_exception;
-       AltosState              state;
-
-       private void FlushPending() throws IOException {
-               for (String s : flights.config_data) {
-                       eeprom_file.write(s);
-                       eeprom_file.write('\n');
-               }
-
-               for (String s : eeprom_pending)
-                       eeprom_file.write(s);
-       }
-
-       private void CheckFile(boolean force) throws IOException {
-               if (eeprom_file != null)
-                       return;
-               if (force || (state.flight != 0 && want_file)) {
-                       AltosFile               eeprom_name;
-                       AltosGPS                gps = state.gps;
-
-                       if (gps != null &&
-                           gps.year != AltosLib.MISSING &&
-                           gps.month != AltosLib.MISSING &&
-                           gps.day != AltosLib.MISSING)
-                       {
-                               eeprom_name = new AltosFile(gps.year, gps.month, gps.day,
-                                                           state.serial, state.flight, "eeprom");
-                       } else
-                               eeprom_name = new AltosFile(state.serial, state.flight, "eeprom");
-
-                       eeprom_file = new FileWriter(eeprom_name);
-                       if (eeprom_file != null) {
-                               monitor.set_filename(eeprom_name.getName());
-                               FlushPending();
-                               eeprom_pending = null;
-                       }
-               }
-       }
-
-       boolean                 done;
-       boolean                 start;
-
-       void LogEeprom(AltosEeprom r) throws IOException {
-               if (r.cmd != Altos.AO_LOG_INVALID) {
-                       String line = r.string();
-                       if (eeprom_file != null)
-                               eeprom_file.write(line);
-                       else
-                               eeprom_pending.add(line);
-               }
-       }
-
-       void CaptureEeprom(AltosEepromChunk eechunk, int log_format) throws IOException, ParseException {
-               boolean any_valid = false;
-               boolean got_flight = false;
-
-               int record_length = 8;
-
-               state.set_serial(flights.config_data.serial);
-               monitor.set_serial(flights.config_data.serial);
-
-               for (int i = 0; i < AltosEepromChunk.chunk_size && !done; i += record_length) {
-                       AltosEeprom r = eechunk.eeprom(i, log_format, state);
-
-                       if (r == null)
-                               continue;
-
-                       record_length = r.record_length();
-
-                       r.update_state(state);
-
-                       if (!got_flight && state.flight != AltosLib.MISSING)
-                               monitor.set_flight(state.flight);
-
-                       /* Monitor state transitions to update display */
-                       if (state.state != AltosLib.ao_flight_invalid &&
-                           state.state <= AltosLib.ao_flight_landed)
-                       {
-                               if (state.state > Altos.ao_flight_pad)
-                                       want_file = true;
-                               if (state.state == AltosLib.ao_flight_landed)
-                                       done = true;
-                       }
-
-                       if (state.gps != null)
-                               want_file = true;
-
-                       if (r.valid) {
-                               any_valid = true;
-                               LogEeprom(r);
-                       }
-               }
-               if (!any_valid)
-                       done = true;
-
-               CheckFile(false);
-       }
-       
-       void CaptureLog(AltosEepromLog log) throws IOException, InterruptedException, TimeoutException, ParseException {
-               int                     block, state_block = 0;
-               int                     log_format = flights.config_data.log_format;
-
-               state = new AltosState();
-
-               done = false;
-               start = true;
-
-               if (flights.config_data.serial < 0)
-                       throw new IOException("no serial number found");
-
-               /* Reset per-capture variables */
-               want_file = false;
-               eeprom_file = null;
-               eeprom_pending = new LinkedList<String>();
-
-               /* Set serial number in the monitor dialog window */
-               /* Now scan the eeprom, reading blocks of data and converting to .eeprom file form */
-
-               state_block = log.start_block;
-               for (block = log.start_block; !done && block < log.end_block; block++) {
-                       monitor.set_value(state.state_name(),
-                                         state.state,
-                                         block - state_block,
-                                         block - log.start_block);
-
-                       AltosEepromChunk        eechunk = new AltosEepromChunk(serial_line, block, block == log.start_block);
-
-                       /*
-                        * Guess what kind of data is there if the device
-                        * didn't tell us
-                        */
-
-                       if (log_format == Altos.AO_LOG_FORMAT_UNKNOWN) {
-                               if (block == log.start_block) {
-                                       if (eechunk.data(0) == Altos.AO_LOG_FLIGHT)
-                                               log_format = Altos.AO_LOG_FORMAT_FULL;
-                                       else
-                                               log_format = Altos.AO_LOG_FORMAT_TINY;
-                               }
-                       }
-
-                       CaptureEeprom (eechunk, log_format);
-               }
-               CheckFile(true);
-               if (eeprom_file != null) {
-                       eeprom_file.flush();
-                       eeprom_file.close();
-               }
-       }
-
-       public void run () {
-               try {
-                       boolean failed = false;
-                       if (remote)
-                               serial_line.start_remote();
-
-                       for (AltosEepromLog log : flights) {
-                               parse_exception = null;
-                               if (log.selected) {
-                                       monitor.reset();
-                                       try {
-                                               CaptureLog(log);
-                                       } catch (ParseException e) {
-                                               parse_exception = e;
-                                       }
-                               }
-                               if (parse_exception != null) {
-                                       failed = true;
-                                       monitor.show_message(String.format("Flight %d download error\n%s\nValid log data saved",
-                                                                          log.flight,
-                                                                          parse_exception.getMessage()),
-                                                            serial_line.device.toShortString(),
-                                                            AltosEepromMonitor.WARNING_MESSAGE);
-                               }
-                       }
-                       success = !failed;
-               } catch (IOException ee) {
-                       monitor.show_message(ee.getLocalizedMessage(),
-                                            serial_line.device.toShortString(),
-                                            AltosEepromMonitor.ERROR_MESSAGE);
-               } catch (InterruptedException ie) {
-                       monitor.show_message(String.format("Connection to \"%s\" interrupted",
-                                                          serial_line.device.toShortString()),
-                                            "Connection Interrupted",
-                                            AltosEepromMonitor.ERROR_MESSAGE);
-               } catch (TimeoutException te) {
-                       monitor.show_message(String.format("Connection to \"%s\" failed",
-                                                          serial_line.device.toShortString()),
-                                            "Connection Failed",
-                                            AltosEepromMonitor.ERROR_MESSAGE);
-               } finally {
-                       if (remote) {
-                               try {
-                                       serial_line.stop_remote();
-                               } catch (InterruptedException ie) {
-                               }
-                       }
-                       serial_line.flush_output();
-               }
-               monitor.done(success);
-       }
-
-       public void start() {
-               eeprom_thread = new Thread(this);
-               eeprom_thread.start();
-       }
-
-       public AltosEepromDownload(AltosEepromMonitor given_monitor,
-                                  AltosSerial given_serial_line,
-                                  boolean given_remote,
-                                  AltosEepromList given_flights) {
-
-               monitor = given_monitor;
-               serial_line = given_serial_line;
-               remote = given_remote;
-               flights = given_flights;
-               success = false;
-
-               monitor.set_states(Altos.ao_flight_boost, Altos.ao_flight_landed);
-
-               monitor.set_thread(eeprom_thread);
-               monitor.start();
-       }
-}
diff --git a/altosui/AltosEepromList.java b/altosui/AltosEepromList.java
deleted file mode 100644 (file)
index 258c421..0000000
+++ /dev/null
@@ -1,118 +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 altosui;
-
-import java.io.*;
-import java.util.*;
-import java.text.*;
-import java.util.concurrent.*;
-import org.altusmetrum.altoslib_2.*;
-
-/*
- * Temporary structure to hold the list of stored flights;
- * each of these will be queried in turn to generate more
- * complete information
- */
-
-class AltosEepromFlight {
-       int     flight;
-       int     start;
-       int     end;
-
-       public AltosEepromFlight(int in_flight, int in_start, int in_end) {
-               flight = in_flight;
-               start = in_start;
-               end = in_end;
-       }
-}
-
-/*
- * Construct a list of flights available in a connected device
- */
-
-public class AltosEepromList extends ArrayList<AltosEepromLog> {
-       AltosConfigData config_data;
-
-       public AltosEepromList (AltosSerial serial_line, boolean remote)
-               throws IOException, InterruptedException, TimeoutException
-       {
-               try {
-                       if (remote)
-                               serial_line.start_remote();
-                       config_data = new AltosConfigData (serial_line);
-//                     if (config_data.serial == 0)
-//                             throw new IOException("no serial number found");
-
-                       ArrayList<AltosEepromFlight> flights = new ArrayList<AltosEepromFlight>();
-
-                       if (config_data.flight_log_max != 0 || config_data.log_format != 0) {
-
-                               /* Devices with newer firmware will support the 'l'
-                                * command which will list the region of storage
-                                * occupied by each available flight
-                                */
-                               serial_line.printf("l\n");
-                               for (;;) {
-                                       String line = serial_line.get_reply(5000);
-                                       if (line == null)
-                                               throw new TimeoutException();
-                                       if (line.contains("done"))
-                                               break;
-                                       if (line.contains("Syntax"))
-                                               continue;
-                                       String[] tokens = line.split("\\s+");
-                                       if (tokens.length < 6)
-                                               break;
-
-                                       int     flight = -1, start = -1, end = -1;
-                                       try {
-                                               if (tokens[0].equals("flight"))
-                                                       flight = AltosParse.parse_int(tokens[1]);
-                                               if (tokens[2].equals("start"))
-                                                       start = AltosParse.parse_hex(tokens[3]);
-                                               if (tokens[4].equals("end"))
-                                                       end = AltosParse.parse_hex(tokens[5]);
-                                               if (flight > 0 && start >= 0 && end > 0)
-                                                       flights.add(new AltosEepromFlight(flight, start, end));
-                                       } catch (ParseException pe) { System.out.printf("Parse error %s\n", pe.toString()); }
-                               }
-                       } else {
-
-                               /* Older devices will hold only a single
-                                * flight. This also assumes that any older
-                                * device will have a 1MB flash device
-                                */
-                               flights.add(new AltosEepromFlight(0, 0, 0xfff));
-                       }
-
-                       /* With the list of flights collected, collect more complete
-                        * information on them by reading the first block or two of
-                        * data. This will add GPS coordinates and a date. For older
-                        * firmware, this will also extract the flight number.
-                        */
-                       for (AltosEepromFlight flight : flights) {
-                               add(new AltosEepromLog(config_data, serial_line,
-                                                      flight.flight, flight.start, flight.end));
-                       }
-               } finally {
-                       if (remote)
-                               serial_line.stop_remote();
-                       serial_line.flush_output();
-               }
-       }
-}
\ No newline at end of file
index b51f811296d6208fab2352b2475137b6e1135f59..e103d2896d00b09a63d58ce2e66fae0cd1681c36 100644 (file)
@@ -34,8 +34,6 @@ altosui_JAVA = \
        AltosDeviceUIDialog.java \
        AltosDisplayThread.java \
        AltosEepromDelete.java \
-       AltosEepromDownload.java \
-       AltosEepromList.java \
        AltosEepromManage.java \
        AltosEepromMonitorUI.java \
        AltosEepromSelect.java \
index 0cd2aaea5eb36d027a828ef3f0bac905ae870fc3..5e19e00f9a747972b182621e8e39041e9048fe1d 100644 (file)
@@ -1,4 +1,4 @@
-AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation
+AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation -source 6
 
 JAVAROOT=bin