X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosuilib%2FAltosFlashUI.java;h=fd84f921c5d75a5fb0249133321ad0ffd98af247;hb=b07ca2827a498e6dd3c6b62819f71679291f9acc;hp=ffb39b8c2aae4e4e7b2035a9e780355114808bf8;hpb=48e221cca00c9f925ff57588dd782842705f7a23;p=fw%2Faltos diff --git a/altosuilib/AltosFlashUI.java b/altosuilib/AltosFlashUI.java index ffb39b8c..fd84f921 100644 --- a/altosuilib/AltosFlashUI.java +++ b/altosuilib/AltosFlashUI.java @@ -16,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib_13; +package org.altusmetrum.altosuilib_14; import java.awt.*; import java.awt.event.*; @@ -24,7 +24,7 @@ import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_13.*; +import org.altusmetrum.altoslib_14.*; public class AltosFlashUI extends AltosUIDialog @@ -64,8 +64,7 @@ public class AltosFlashUI "telemetrum-v1", "telemini-v1", "telenano", - "teleshield", - "teleterra" + "teleshield" }; private static final String[] pair_programmed_devices = { @@ -78,8 +77,7 @@ public class AltosFlashUI "TeleMetrum-v1", "TeleMini-v1", "TeleNano", - "TeleShield", - "TeleTerra" + "TeleShield" }; private boolean is_pair_programmed() { @@ -319,7 +317,7 @@ public class AltosFlashUI return false; } - if (existing_config.radio_calibration_broken) { + if (existing_config != null && existing_config.radio_calibration_broken) { int ret = JOptionPane.showConfirmDialog(this, String.format("Radio calibration value %d may be incorrect\nFlash anyways?", existing_config.radio_calibration), @@ -481,12 +479,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 +546,7 @@ public class AltosFlashUI if (!matched) { System.out.printf("Identified new device %s\n", d.toShortString()); device = (AltosUSBDevice) d; + new_device = true; break; } }