altosui: Use timeouts to recover from broken packet links.
[fw/altos] / ao-tools / altosui / AltosFlashUI.java
index 86f57a5fb3c862e755f1909c4310357e7b59bc09..d3b72c67737b507fd6274429614cc6f1641a1138 100644 (file)
@@ -28,9 +28,6 @@ import java.text.*;
 import java.util.prefs.*;
 import java.util.concurrent.LinkedBlockingQueue;
 
-import altosui.AltosHexfile;
-import altosui.AltosFlash;
-
 public class AltosFlashUI
        extends JDialog
        implements Runnable, ActionListener
@@ -68,10 +65,9 @@ public class AltosFlashUI
        }
 
        public void run() {
-               flash = new AltosFlash(file, debug_dongle);
-               flash.addActionListener(this);
                try {
-                       flash.open();
+                       flash = new AltosFlash(file, debug_dongle);
+                       flash.addActionListener(this);
                        AltosRomconfigUI romconfig_ui = new AltosRomconfigUI (frame);
 
                        romconfig_ui.set(flash.romconfig());
@@ -91,6 +87,12 @@ public class AltosFlashUI
                                                      "Cannot open image",
                                                      file.toString(),
                                                      JOptionPane.ERROR_MESSAGE);
+               } catch (AltosSerialInUseException si) {
+                       JOptionPane.showMessageDialog(frame,
+                                                     String.format("Device \"%s\" already in use",
+                                                                   debug_dongle.toString()),
+                                                     "Device in use",
+                                                     JOptionPane.ERROR_MESSAGE);
                } catch (IOException e) {
                        JOptionPane.showMessageDialog(frame,
                                                      e.getMessage(),