libaltos: Delay after opening bluetooth device on linux
[fw/altos] / altosui / AltosIgniteUI.java
index c11a86145ce1a68b0d8768cfa75a920469f25272..14d4eebcbaf210013215e704ae3b7849613a2161 100644 (file)
@@ -20,17 +20,14 @@ package altosui;
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
-import javax.swing.event.*;
 import java.io.*;
-import java.util.*;
 import java.text.*;
-import java.util.prefs.*;
 import java.util.concurrent.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
 
 public class AltosIgniteUI
-       extends JDialog
+       extends AltosUIDialog
        implements ActionListener
 {
        AltosDevice     device;
@@ -71,12 +68,15 @@ public class AltosIgniteUI
 
                public void run () {
                        try {
-                               ignite = new AltosIgnite(device);
+                               AltosSerial     serial = new AltosSerial(device);
+                               serial.set_frame(owner);
+                               ignite = new AltosIgnite(serial,
+                                                        !device.matchProduct(Altos.product_altimeter));
+
                        } catch (Exception e) {
                                send_exception(e);
                                return;
                        }
-                       ignite.set_frame(owner);
 
                        for (;;) {
                                Runnable        r;
@@ -122,8 +122,7 @@ public class AltosIgniteUI
        void ignite_exception(Exception e) {
                if (e instanceof FileNotFoundException) {
                        JOptionPane.showMessageDialog(owner,
-                                                     String.format("Cannot open device \"%s\"",
-                                                                   device.toShortString()),
+                                                     ((FileNotFoundException) e).getMessage(),
                                                      "Cannot open target device",
                                                      JOptionPane.ERROR_MESSAGE);
                } else if (e instanceof AltosSerialInUseException) {
@@ -306,7 +305,7 @@ public class AltosIgniteUI
        private boolean open() {
                command_queue = new LinkedBlockingQueue<String>();
 
-               device = AltosDeviceDialog.show(owner, Altos.product_any);
+               device = AltosDeviceUIDialog.show(owner, Altos.product_any);
                if (device != null) {
                                IgniteHandler   handler = new IgniteHandler(owner);
                                Thread          t = new Thread(handler);