X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosuilib%2FAltosFlashUI.java;fp=altosuilib%2FAltosFlashUI.java;h=7186e91b33024f14fc7c1e21d3c0dda5f99a6cfe;hp=37ab96614af52f73d4ab116aa9c39f9d457f480e;hb=695dba4e37ccca9a2dc06e1656699a13406002c1;hpb=2b3c6806a3039ac8c4c1a1e2d6715b0cdc5b9632 diff --git a/altosuilib/AltosFlashUI.java b/altosuilib/AltosFlashUI.java index 37ab9661..7186e91b 100644 --- a/altosuilib/AltosFlashUI.java +++ b/altosuilib/AltosFlashUI.java @@ -481,12 +481,24 @@ public class AltosFlashUI public void run () { try { AltosLink link = null; + boolean new_device = false; for (;;) { System.out.printf("Attempting to open %s\n", device.toShortString()); - link = new AltosSerial(device); + for (int i = 0; i < 20; i++) { + link = new AltosSerial(device); + if (link != null) + break; + + if (!new_device) + break; + + System.out.printf("Waiting for device to become ready\n"); + + Thread.sleep(1000); + } if (link == null) throw new IOException(String.format("%s: open failed", device.toShortString())); @@ -536,6 +548,7 @@ public class AltosFlashUI if (!matched) { System.out.printf("Identified new device %s\n", d.toShortString()); device = (AltosUSBDevice) d; + new_device = true; break; } }