From: Keith Packard Date: Sat, 1 Mar 2014 05:16:57 +0000 (-0800) Subject: altosui: Retry device enumeration after rebooting for self flash X-Git-Tag: 1.3.2.2~172 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=a072cbb137126e677d3ebbf0245ec4ea5aa481ad altosui: Retry device enumeration after rebooting for self flash Windows takes 'a while' to include the rebooted device in the list of available devices, so try a few times with a 100ms delay so that we can avoid asking the user to select from an empty list. Signed-off-by: Keith Packard --- diff --git a/altosui/AltosFlashUI.java b/altosui/AltosFlashUI.java index 5913e506..793a8af3 100644 --- a/altosui/AltosFlashUI.java +++ b/altosui/AltosFlashUI.java @@ -377,7 +377,15 @@ public class AltosFlashUI while (!link.is_loader()) { link.to_loader(); - java.util.List devices = AltosUSBDevice.list(AltosLib.product_altusmetrum); + java.util.List 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 +}