altoslib: Create data file open helper in AltosLib
[fw/altos] / telegps / TeleGPS.java
index cf2cbd4fefce4e114fb8605cbdda3a2a5ff535cb..e032726a1dfadd268e8fd96582bfe386fca505c0 100644 (file)
@@ -152,7 +152,7 @@ public class TeleGPS
                        status_update.saved_listener_state = listener_state;
 
                        if (state == null)
-                               state = new AltosState();
+                               state = new AltosState(new AltosCalData());
 
                        int i = 0;
                        for (AltosFlightDisplay display : displays) {
@@ -287,23 +287,30 @@ public class TeleGPS
                new TeleGPSConfig(this);
        }
 
+       private static AltosFlightSeries make_series(AltosRecordSet set) {
+               AltosFlightSeries series = new AltosFlightSeries(set.cal_data());
+               set.capture_series(series);
+               series.finish();
+               return series;
+       }
+
        void export() {
-               AltosDataChooser chooser;
-               chooser = new AltosDataChooser(this);
-               AltosStateIterable states = chooser.runDialog();
-               if (states == null)
+               AltosDataChooser chooser = new AltosDataChooser(this);
+
+               AltosRecordSet set = chooser.runDialog();
+               if (set == null)
                        return;
-               new AltosCSVUI(this, states, chooser.file());
+               AltosFlightSeries series = make_series(set);
+               new AltosCSVUI(this, series, series.cal_data, chooser.file());
        }
 
        void graph() {
-               AltosDataChooser chooser;
-               chooser = new AltosDataChooser(this);
-               AltosStateIterable states = chooser.runDialog();
-               if (states == null)
+               AltosDataChooser chooser = new AltosDataChooser(this);
+               AltosRecordSet set = chooser.runDialog();
+               if (set == null)
                        return;
                try {
-                       new TeleGPSGraphUI(states, chooser.file());
+                       new TeleGPSGraphUI(set, chooser.file());
                } catch (InterruptedException ie) {
                } catch (IOException ie) {
                }
@@ -612,40 +619,28 @@ public class TeleGPS
                connect(device);
        }
 
-       static AltosStateIterable record_iterable(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 {
-                                AltosEepromFile f = new AltosEepromFile(new FileReader(file));
-                                return f;
-                        } catch (Exception e) {
-                                System.out.printf("Failed to open file '%s'\n", file);
-                        }
+       static AltosRecordSet record_set(File file) {
+               try {
+                       return AltosLib.record_set(file);
+               } catch (IOException ie) {
+                       System.out.printf("%s\n", ie.getMessage());
                 }
                 return null;
        }
 
        static AltosReplayReader replay_file(File file) {
-               AltosStateIterable states = record_iterable(file);
-               if (states == null)
+               AltosRecordSet set = record_set(file);
+               if (set == null)
                        return null;
-               return new AltosReplayReader(states.iterator(), file);
+               return new AltosReplayReader(set, file);
        }
 
        static boolean process_graph(File file) {
-               AltosStateIterable states = record_iterable(file);
-               if (states == null)
+               AltosRecordSet set = record_set(file);
+               if (set == null)
                        return false;
                try {
-                       new TeleGPSGraphUI(states, file);
+                       new TeleGPSGraphUI(set, file);
                } catch (Exception e) {
                        return false;
                }