altoslib: Improve EEprom download
[fw/altos] / telegps / TeleGPS.java
index 5e500e0259a74623e6d934d2e85b876bc0107d2a..1433c9e164c01bade972e009d7a7b42f6c13d0e8 100644 (file)
@@ -25,12 +25,12 @@ import java.io.*;
 import java.util.concurrent.*;
 import java.util.*;
 import java.text.*;
-import org.altusmetrum.altoslib_11.*;
-import org.altusmetrum.altosuilib_11.*;
+import org.altusmetrum.altoslib_12.*;
+import org.altusmetrum.altosuilib_12.*;
 
 public class TeleGPS
        extends AltosUIFrame
-       implements AltosFlightDisplay, AltosFontListener, AltosUnitsListener, ActionListener
+       implements AltosFlightDisplay, AltosFontListener, AltosUnitsListener, ActionListener, AltosEepromGrapher
 {
 
        static String[] telegps_icon_names = {
@@ -280,7 +280,7 @@ public class TeleGPS
        }
 
        void download(){
-               new AltosEepromManage(this, AltosLib.product_telegps);
+               new AltosEepromManage(this, this, AltosLib.product_telegps);
        }
 
        void configure() {
@@ -301,7 +301,7 @@ public class TeleGPS
                if (set == null)
                        return;
                AltosFlightSeries series = make_series(set);
-               new AltosCSVUI(this, series, series.cal_data, chooser.file());
+               new AltosCSVUI(this, series, chooser.file());
        }
 
        void graph() {
@@ -316,6 +316,21 @@ public class TeleGPS
                }
        }
 
+       public void graph_flights(AltosEepromList list) {
+               for (AltosEepromLog log : list) {
+                       if (log.file != null) {
+                               AltosRecordSet set = record_set(log.file);
+                               if (set != null) {
+                                       try {
+                                               new TeleGPSGraphUI(set, log.file);
+                                       } catch (InterruptedException ie) {
+                                       } catch (IOException ie) {
+                                       }
+                               }
+                       }
+               }
+       }
+
        void flash() {
                AltosFlashUI.show(this);
        }
@@ -620,21 +635,10 @@ public class TeleGPS
        }
 
        static AltosRecordSet record_set(File file) {
-               FileInputStream in;
-                if (file.getName().endsWith("telem")) {
-                        try {
-                                in = new FileInputStream(file);
-                                return new AltosTelemetryFile(in);
-                        } catch (Exception e) {
-                                System.out.printf("Failed to open file '%s'\n", file);
-                        }
-                } else {
-
-                        try {
-                                return new AltosEepromFile(new FileReader(file));
-                        } catch (Exception e) {
-                                System.out.printf("Failed to open file '%s'\n", file);
-                        }
+               try {
+                       return AltosLib.record_set(file);
+               } catch (IOException ie) {
+                       System.out.printf("%s\n", ie.getMessage());
                 }
                 return null;
        }