altosui: Select devices by USB vendor/product ID.
[fw/altos] / ao-tools / altosui / AltosUI.java
index 2cb0c47935d10ca6c77b70035b56f842c62b6d4d..b96e16a612d0c05e2d39a7c273b1bb5ca7ac1a16 100644 (file)
@@ -391,21 +391,12 @@ public class AltosUI extends JFrame {
                }
        }
 
-       class TelemetryThread extends DisplayThread {
-
-               String readline() throws InterruptedException { return null; }
-
-               AltosRecord read() throws InterruptedException, ParseException {
-                       return new AltosTelemetry(readline());
-               }
-       }
-
-       class DeviceThread extends TelemetryThread {
+       class DeviceThread extends DisplayThread {
                AltosSerial     serial;
                LinkedBlockingQueue<String> telem;
 
-               String readline() throws InterruptedException {
-                       return telem.take();
+               AltosRecord read() throws InterruptedException, ParseException {
+                       return new AltosTelemetry(telem.take());
                }
 
                void close() {
@@ -422,7 +413,7 @@ public class AltosUI extends JFrame {
        }
 
        private void ConnectToDevice() {
-               altos_device    device = AltosDeviceDialog.show(AltosUI.this, "TeleDongle");
+               AltosDevice     device = AltosDeviceDialog.show(AltosUI.this, AltosDevice.BaseStation);
 
                if (device != null) {
                        try {
@@ -453,36 +444,30 @@ public class AltosUI extends JFrame {
         * Open an existing telemetry file and replay it in realtime
         */
 
-       class ReplayTelemetryThread extends TelemetryThread {
-               FileInputStream replay;
-
-               ReplayTelemetryThread(FileInputStream in, String in_name) {
-                       replay = in;
-                       name = in_name;
-               }
+       class ReplayThread extends DisplayThread {
+               AltosReader     reader;
+               String          name;
 
-               String readline() {
+               public AltosRecord read() {
                        try {
-                               String  line = AltosRecord.gets(replay);
-                               System.out.printf("telemetry line %s\n", line);
-                               return line;
-                       } catch (IOException ee) {
+                               return reader.read();
+                       } catch (IOException ie) {
                                JOptionPane.showMessageDialog(AltosUI.this,
                                                              name,
                                                              "error reading",
                                                              JOptionPane.ERROR_MESSAGE);
+                       } catch (ParseException pe) {
                        }
                        return null;
                }
 
-               void close () {
-                       try {
-                               replay.close();
-                       } catch (IOException ee) {
-                       }
+               public void close () {
                        report();
                }
 
+               public ReplayThread(AltosReader in_reader, String in_name) {
+                       reader = in_reader;
+               }
                void update(AltosState state) throws InterruptedException {
                        /* Make it run in realtime after the rocket leaves the pad */
                        if (state.state > Altos.ao_flight_pad)
@@ -490,40 +475,16 @@ public class AltosUI extends JFrame {
                }
        }
 
-       class ReplayEepromThread extends DisplayThread {
-               FileInputStream replay;
-
-               AltosEepromReader       reader;
-
-               ReplayEepromThread(FileInputStream in, String in_name) {
-                       replay = in;
-                       name = in_name;
-                       reader = new AltosEepromReader (in);
+       class ReplayTelemetryThread extends ReplayThread {
+               ReplayTelemetryThread(FileInputStream in, String in_name) {
+                       super(new AltosTelemetryReader(in), in_name);
                }
 
-               AltosRecord read () throws ParseException {
-                       try {
-                               return reader.read();
-                       } catch (IOException ee) {
-                               JOptionPane.showMessageDialog(AltosUI.this,
-                                                             name,
-                                                             "error reading",
-                                                             JOptionPane.ERROR_MESSAGE);
-                       }
-                       return null;
-               }
+       }
 
-               void close () {
-                       try {
-                               replay.close();
-                       } catch (IOException ee) {
-                       }
-                       report();
-               }
-               void update(AltosState state) throws InterruptedException {
-                       /* Make it run in realtime after the rocket leaves the pad */
-                       if (state.state > Altos.ao_flight_pad)
-                               Thread.sleep((int) (Math.min(state.time_change,10) * 1000));
+       class ReplayEepromThread extends ReplayThread {
+               ReplayEepromThread(FileInputStream in, String in_name) {
+                       super(new AltosEepromReader(in), in_name);
                }
        }