altosui: Select devices by USB vendor/product ID.
[fw/altos] / ao-tools / altosui / AltosEepromDownload.java
index 756b82d188d552308a857b274d71413b0fd319c0..c2a8d25e8b229d7c6d20d4aaac466001d0eaa7fb 100644 (file)
@@ -31,6 +31,7 @@ import java.util.concurrent.LinkedBlockingQueue;
 import altosui.Altos;
 import altosui.AltosSerial;
 import altosui.AltosSerialMonitor;
+import altosui.AltosRecord;
 import altosui.AltosTelemetry;
 import altosui.AltosState;
 import altosui.AltosDeviceDialog;
@@ -83,7 +84,7 @@ public class AltosEepromDownload implements Runnable {
        }
 
        JFrame                  frame;
-       altos_device            device;
+       AltosDevice             device;
        AltosSerial             serial_line;
        boolean                 remote;
        Thread                  eeprom_thread;
@@ -103,7 +104,7 @@ public class AltosEepromDownload implements Runnable {
                AltosFile               eeprom_name;
                LinkedList<String>      eeprom_pending = new LinkedList<String>();
 
-               serial_line.printf("v\n");
+               serial_line.printf("\nc s\nv\n");
 
                /* Pull the serial number out of the version information */
 
@@ -113,12 +114,13 @@ public class AltosEepromDownload implements Runnable {
                        if (line.startsWith("serial-number")) {
                                try {
                                        serial = Integer.parseInt(line.substring(13).trim());
-                                       eeprom_pending.add(String.format("%s\n", line));
                                } catch (NumberFormatException ne) {
                                        serial = 0;
                                }
                        }
 
+                       eeprom_pending.add(String.format("%s\n", line));
+
                        /* signals the end of the version info */
                        if (line.startsWith("software-version"))
                                break;
@@ -249,7 +251,7 @@ public class AltosEepromDownload implements Runnable {
 
        public AltosEepromDownload(JFrame given_frame) {
                frame = given_frame;
-               device = AltosDeviceDialog.show(frame, null);
+               device = AltosDeviceDialog.show(frame, AltosDevice.Any);
 
                serial_line = new AltosSerial();
                remote = false;
@@ -257,7 +259,8 @@ public class AltosEepromDownload implements Runnable {
                if (device != null) {
                        try {
                                serial_line.open(device);
-                               if (!device.getProduct().startsWith("TeleMetrum"))
+                               String name = device.getName();
+                               if (!device.matchProduct(AltosDevice.TeleMetrum))
                                        remote = true;
                                eeprom_thread = new Thread(this);
                                eeprom_thread.start();