altosui: Move more eeprom stuff to altoslib
authorKeith Packard <keithp@keithp.com>
Tue, 3 Jan 2012 05:05:02 +0000 (21:05 -0800)
committerKeith Packard <keithp@keithp.com>
Sun, 3 Jun 2012 02:30:22 +0000 (19:30 -0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosEepromLog.java [deleted file]
altosui/AltosEepromSelect.java
altosui/Makefile.am
altosui/altoslib/Makefile.am
altosui/altoslib/src/org/altusmetrum/AltosLib/AltosConfigData.java
altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromChunk.java
altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromLog.java [new file with mode: 0644]
altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromRecord.java

diff --git a/altosui/AltosEepromLog.java b/altosui/AltosEepromLog.java
deleted file mode 100644 (file)
index a24e82c..0000000
+++ /dev/null
@@ -1,108 +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.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
-import java.io.*;
-import java.util.*;
-import java.text.*;
-import java.util.prefs.*;
-import java.util.concurrent.*;
-import org.altusmetrum.AltosLib.*;
-
-import libaltosJNI.*;
-
-/*
- * Extract a bit of information from an eeprom-stored flight log.
- */
-
-public class AltosEepromLog {
-       int             serial;
-       boolean         has_flight;
-       int             flight;
-       int             start_block;
-       int             end_block;
-
-       int             year, month, day;
-
-       boolean         selected;
-
-       public AltosEepromLog(AltosConfigData config_data,
-                             AltosSerial serial_line,
-                             int in_flight, int in_start_block,
-                             int in_end_block)
-               throws InterruptedException, TimeoutException {
-
-               int             block;
-               boolean         has_date = false;
-
-               flight = in_flight;
-               if (flight != 0)
-                       has_flight = true;
-               start_block = in_start_block;
-               end_block = in_end_block;
-               serial = config_data.serial;
-
-               /*
-                * Select all flights for download
-                */
-               selected = true;
-
-               /*
-                * Look in TeleMetrum log data for date
-                */
-               if (config_data.log_format == Altos.AO_LOG_FORMAT_UNKNOWN ||
-                   config_data.log_format == Altos.AO_LOG_FORMAT_FULL)
-               {
-                       /*
-                        * Only look in the first two blocks so that this
-                        * process doesn't take a long time
-                        */
-                       if (in_end_block > in_start_block + 2)
-                               in_end_block = in_start_block + 2;
-
-                       for (block = in_start_block; block < in_end_block; block++) {
-                               AltosEepromChunk eechunk = new AltosEepromChunk(serial_line, block, block == in_start_block);
-
-                               for (int i = 0; i < eechunk.chunk_size; i += AltosEepromRecord.record_length) {
-                                       try {
-                                               AltosEepromRecord r = new AltosEepromRecord(eechunk, i);
-
-                                               if (r.cmd == Altos.AO_LOG_FLIGHT) {
-                                                       flight = r.b;
-                                                       has_flight = true;
-                                               }
-                                               if (r.cmd == Altos.AO_LOG_GPS_DATE) {
-                                                       year = 2000 + (r.a & 0xff);
-                                                       month = (r.a >> 8) & 0xff;
-                                                       day = (r.b & 0xff);
-                                                       has_date = true;
-                                               }
-                                       } catch (ParseException pe) {
-                                       }
-                               }
-                               if (has_date && has_flight)
-                                       break;
-                       }
-               }
-       }
-}
index e0fbeeadefcdf67ade075d4ecad2e99b2ded324d..4ad78896b3445b4a100ec2cbd5cbb8256a8085cc 100644 (file)
@@ -27,6 +27,7 @@ import libaltosJNI.libaltos;
 import libaltosJNI.altos_device;
 import libaltosJNI.SWIGTYPE_p_altos_file;
 import libaltosJNI.SWIGTYPE_p_altos_list;
+import org.altusmetrum.AltosLib.*;
 
 class AltosEepromItem implements ActionListener {
        AltosEepromLog  log;
index a168b6fc7d356136e8c1e4b8d8c16cc6e70367db..84482dc258d25f13075aafecc3f7d9eaa22d571d 100644 (file)
@@ -40,7 +40,6 @@ altosui_JAVA = \
        AltosEepromDelete.java \
        AltosEepromDownload.java \
        AltosEepromList.java \
-       AltosEepromLog.java \
        AltosEepromManage.java \
        AltosEepromMonitor.java \
        AltosEepromTeleScience.java \
index ad4d2d989e02a5cd8ff64d67122b7ff9cd13e683..32f0ecfbbc986a331a8207883f90e94bc44faa21 100644 (file)
@@ -16,6 +16,7 @@ AltosLib_JAVA = \
        $(SRC)/AltosCRCException.java \
        $(SRC)/AltosEepromChunk.java \
        $(SRC)/AltosEepromIterable.java \
+       $(SRC)/AltosEepromLog.java \
        $(SRC)/AltosEepromRecord.java \
        $(SRC)/AltosFrequency.java \
        $(SRC)/AltosGPS.java \
index fec1a04254feace44db8cb66f799d79aca69cade..4ad4e58a2955972d645e2bc85b7f5df828d2fdc3 100644 (file)
@@ -27,33 +27,33 @@ import org.altusmetrum.AltosLib.*;
 public class AltosConfigData implements Iterable<String> {
 
        /* Version information */
-       String  manufacturer;
-       String  product;
-       String  version;
-       int     log_format;
-       int     serial;
+       public String   manufacturer;
+       public String   product;
+       public String   version;
+       public int      log_format;
+       public int      serial;
 
        /* Strings returned */
-       LinkedList<String>      lines;
+       public LinkedList<String>       lines;
 
        /* Config information */
-       int     config_major;
-       int     config_minor;
-       int     main_deploy;
-       int     apogee_delay;
-       int     radio_channel;
-       int     radio_setting;
-       int     radio_frequency;
-       String  callsign;
-       int     accel_cal_plus, accel_cal_minus;
-       int     radio_calibration;
-       int     flight_log_max;
-       int     ignite_mode;
-       int     stored_flight;
-       int     storage_size;
-       int     storage_erase_unit;
-
-       static String get_string(String line, String label) throws  ParseException {
+       public int      config_major;
+       public int      config_minor;
+       public int      main_deploy;
+       public int      apogee_delay;
+       public int      radio_channel;
+       public int      radio_setting;
+       public int      radio_frequency;
+       public String   callsign;
+       public int      accel_cal_plus, accel_cal_minus;
+       public int      radio_calibration;
+       public int      flight_log_max;
+       public int      ignite_mode;
+       public int      stored_flight;
+       public int      storage_size;
+       public int      storage_erase_unit;
+
+       public static String get_string(String line, String label) throws  ParseException {
                if (line.startsWith(label)) {
                        String  quoted = line.substring(label.length()).trim();
 
@@ -66,7 +66,7 @@ public class AltosConfigData implements Iterable<String> {
                throw new ParseException("mismatch", 0);
        }
 
-       static int get_int(String line, String label) throws NumberFormatException, ParseException {
+       public static int get_int(String line, String label) throws NumberFormatException, ParseException {
                if (line.startsWith(label)) {
                        String tail = line.substring(label.length()).trim();
                        String[] tokens = tail.split("\\s+");
index 4a9a267978ec9442bec241a61e3291d268232ca2..6d889723c4f29240a87056be1d152aab4d470a2b 100644 (file)
@@ -24,8 +24,8 @@ import java.util.concurrent.*;
 
 public class AltosEepromChunk {
 
-       static final int        chunk_size = 256;
-       static final int        per_line = 8;
+       public static final int chunk_size = 256;
+       public static final int per_line = 8;
 
        public int              data[];
        public int              address;
@@ -44,20 +44,20 @@ public class AltosEepromChunk {
                return array;
        }
 
-       int data(int offset) {
+       public int data(int offset) {
                return data[offset];
        }
 
-       int data16(int offset) {
+       public int data16(int offset) {
                return data[offset] | (data[offset + 1] << 8);
        }
 
-       int data32(int offset) {
+       public int data32(int offset) {
                return data[offset] | (data[offset + 1] << 8) |
                        (data[offset+2] << 16) | (data[offset+3] << 24);
        }
 
-       boolean erased(int start, int len) {
+       public boolean erased(int start, int len) {
                for (int i = 0; i < len; i++)
                        if (data[start+i] != 0xff)
                                return false;
diff --git a/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromLog.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromLog.java
new file mode 100644 (file)
index 0000000..7fca4bd
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * 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;
+
+import java.io.*;
+import java.util.*;
+import java.text.*;
+import java.util.prefs.*;
+import java.util.concurrent.*;
+
+/*
+ * Extract a bit of information from an eeprom-stored flight log.
+ */
+
+public class AltosEepromLog {
+       public int              serial;
+       public boolean          has_flight;
+       public int              flight;
+       public int              start_block;
+       public int              end_block;
+
+       public int              year, month, day;
+
+       public boolean          selected;
+
+       public AltosEepromLog(AltosConfigData config_data,
+                             AltosLink link,
+                             int in_flight, int in_start_block,
+                             int in_end_block)
+               throws InterruptedException, TimeoutException {
+
+               int             block;
+               boolean         has_date = false;
+
+               flight = in_flight;
+               if (flight != 0)
+                       has_flight = true;
+               start_block = in_start_block;
+               end_block = in_end_block;
+               serial = config_data.serial;
+
+               /*
+                * Select all flights for download
+                */
+               selected = true;
+
+               /*
+                * Look in TeleMetrum log data for date
+                */
+               if (config_data.log_format == AltosLib.AO_LOG_FORMAT_UNKNOWN ||
+                   config_data.log_format == AltosLib.AO_LOG_FORMAT_FULL)
+               {
+                       /*
+                        * Only look in the first two blocks so that this
+                        * process doesn't take a long time
+                        */
+                       if (in_end_block > in_start_block + 2)
+                               in_end_block = in_start_block + 2;
+
+                       for (block = in_start_block; block < in_end_block; block++) {
+                               AltosEepromChunk eechunk = new AltosEepromChunk(link, block, block == in_start_block);
+
+                               for (int i = 0; i < eechunk.chunk_size; i += AltosEepromRecord.record_length) {
+                                       try {
+                                               AltosEepromRecord r = new AltosEepromRecord(eechunk, i);
+
+                                               if (r.cmd == AltosLib.AO_LOG_FLIGHT) {
+                                                       flight = r.b;
+                                                       has_flight = true;
+                                               }
+                                               if (r.cmd == AltosLib.AO_LOG_GPS_DATE) {
+                                                       year = 2000 + (r.a & 0xff);
+                                                       month = (r.a >> 8) & 0xff;
+                                                       day = (r.b & 0xff);
+                                                       has_date = true;
+                                               }
+                                       } catch (ParseException pe) {
+                                       }
+                               }
+                               if (has_date && has_flight)
+                                       break;
+                       }
+               }
+       }
+}
index b2f23c526da6e04d632aa0cd99cfa16a302b7b25..1e845f4642119f76cb5102b7044897d736586ec5 100644 (file)
@@ -31,7 +31,7 @@ public class AltosEepromRecord {
        public String   data;
        public boolean  tick_valid;
 
-       static final int        record_length = 8;
+       public static final int record_length = 8;
 
        public AltosEepromRecord (AltosEepromChunk chunk, int start) throws ParseException {