telegps: Auto-connect to any base stations plugged in at startup
[fw/altos] / altosui / AltosFlashUI.java
index 296ad8ef9d761997aebf142704e1d4c6b5adde0a..d8c70a0675136b23112bbd18b9edd7cc756ef5e8 100644 (file)
@@ -23,8 +23,8 @@ import javax.swing.*;
 import javax.swing.filechooser.FileNameExtensionFilter;
 import java.io.*;
 import java.util.concurrent.*;
-import org.altusmetrum.altoslib_2.*;
-import org.altusmetrum.altosuilib_1.*;
+import org.altusmetrum.altoslib_4.*;
+import org.altusmetrum.altosuilib_2.*;
 
 public class AltosFlashUI
        extends AltosUIDialog
@@ -231,7 +231,7 @@ public class AltosFlashUI
                javax.swing.filechooser.FileFilter ihx_filter = new FileNameExtensionFilter("Flash Image", "ihx");
                hexfile_chooser.addChoosableFileFilter(ihx_filter);
                hexfile_chooser.setFileFilter(ihx_filter);
-               
+
                if (!is_pair_programmed() && !device.matchProduct(AltosLib.product_altusmetrum)) {
                        for (int i = 0; i < filters.length; i++) {
                                if (device != null && device.matchProduct(filters[i].product))
@@ -247,7 +247,7 @@ public class AltosFlashUI
                if (file == null)
                        return false;
                AltosUIPreferences.set_firmwaredir(file.getParentFile());
-               
+
                return true;
        }
 
@@ -377,7 +377,15 @@ public class AltosFlashUI
                        while (!link.is_loader()) {
                                link.to_loader();
 
-                               java.util.List<AltosDevice> devices = AltosUSBDevice.list(AltosLib.product_altusmetrum);
+                               java.util.List<AltosDevice> devices = null;
+
+                               for (int tries = 0; tries < 10; tries++) {
+                                       Thread.sleep(100);
+                                       devices = AltosUSBDevice.list(AltosLib.product_altusmetrum);
+                                       if (devices.size() != 0)
+                                               break;
+                               }
+
                                if (devices.size() == 1)
                                        device = devices.get(0);
                                else {
@@ -429,4 +437,4 @@ public class AltosFlashUI
 
                frame = in_frame;
        }
-}
\ No newline at end of file
+}