altosui: Move product definitions from AltosUI to AltosLib
authorKeith Packard <keithp@keithp.com>
Mon, 18 Jun 2012 01:58:56 +0000 (18:58 -0700)
committerKeith Packard <keithp@keithp.com>
Mon, 18 Jun 2012 01:58:56 +0000 (18:58 -0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosLib.java
altosui/Altos.java
altosui/AltosBTDevice.java
altosui/AltosBTKnown.java
altosui/AltosConfig.java
altosui/AltosConfigureUI.java
altosui/AltosDeviceDialog.java
altosui/AltosUI.java

index e74eaf99fcde1578fa9e2bd120a40c3a69aaaa5d..4a779c551731e59bd5224b86497fb9be5dcc1733 100644 (file)
@@ -78,6 +78,30 @@ public class AltosLib {
        public static final int ao_flight_landed = 8;
        public static final int ao_flight_invalid = 9;
 
+       /* USB product IDs */
+       public final static int vendor_altusmetrum = 0xfffe;
+
+       public final static int product_altusmetrum = 0x000a;
+       public final static int product_telemetrum = 0x000b;
+       public final static int product_teledongle = 0x000c;
+       public final static int product_teleterra = 0x000d;
+       public final static int product_telebt = 0x000e;
+       public final static int product_telelaunch = 0x000f;
+       public final static int product_telelco = 0x0010;
+       public final static int product_telescience = 0x0011;
+       public final static int product_telepyro =0x0012;
+       public final static int product_megametrum = 0x0023;
+       public final static int product_megadongle = 0x0024;
+       public final static int product_altusmetrum_min = 0x000a;
+       public final static int product_altusmetrum_max = 0x0024;
+
+       public final static int product_any = 0x10000;
+       public final static int product_basestation = 0x10000 + 1;
+       public final static int product_altimeter = 0x10000 + 2;
+
+       /* Bluetooth "identifier" (bluetooth sucks) */
+       public final static String bt_product_telebt = "TeleBT";
+
        /* Telemetry modes */
        public static final int ao_telemetry_off = 0;
        public static final int ao_telemetry_min = 1;
index 78e56970d7702669175f011baa79cc1a70f07ec1..e60b3aaa5d6454524c99f69dfc55e39e06ceec10 100644 (file)
@@ -108,89 +108,4 @@ public class Altos extends AltosLib {
                }
                return loaded_library;
        }
-
-       static int usb_vendor_altusmetrum() {
-               load_library();
-               return 0xfffe;
-       }
-
-       static int usb_product_altusmetrum() {
-               load_library();
-               return 0x000a;
-       }
-
-       static int usb_product_altusmetrum_min() {
-               load_library();
-               return 0x000a;
-       }
-
-       static int usb_product_altusmetrum_max() {
-               load_library();
-               return 0x0013;
-       }
-
-       static int usb_product_telemetrum() {
-               load_library();
-               return 0x000b;
-       }
-
-       static int usb_product_teledongle() {
-               load_library();
-               return 0x000c;
-       }
-
-       static int usb_product_teleterra() {
-               load_library();
-               return 0x000d;
-       }
-
-       static int usb_product_telebt() {
-               load_library();
-               return 0x000e;
-       }
-
-       static int usb_product_telelaunch() {
-               load_library();
-               return 0x000f;
-       }
-
-       static int usb_product_telelco() {
-               load_library();
-               return 0x0010;
-       }
-
-       static int usb_product_telescience() {
-               load_library();
-               return 0x0011;
-       }
-
-       static int usb_product_telepyro() {
-               load_library();
-               return 0x0012;
-       }
-
-       public final static int vendor_altusmetrum = usb_vendor_altusmetrum();
-       public final static int product_altusmetrum = usb_product_altusmetrum();
-       public final static int product_telemetrum = usb_product_telemetrum();
-       public final static int product_teledongle = usb_product_teledongle();
-       public final static int product_teleterra = usb_product_teleterra();
-       public final static int product_telebt = usb_product_telebt();
-       public final static int product_telelaunch = usb_product_telelaunch();
-       public final static int product_tele10 = usb_product_telelco();
-       public final static int product_telescience = usb_product_telescience();
-       public final static int product_telepyro = usb_product_telepyro();
-       public final static int product_altusmetrum_min = usb_product_altusmetrum_min();
-       public final static int product_altusmetrum_max = usb_product_altusmetrum_max();
-
-       public final static int product_any = 0x10000;
-       public final static int product_basestation = 0x10000 + 1;
-
-       static String bt_product_telebt() {
-               load_library();
-               return "TeleBT";
-       }
-
-       public final static String bt_product_telebt = bt_product_telebt();
-
-       public static AltosBTKnown bt_known = new AltosBTKnown();
 }
index 55b8f8fc8bf5f28c2b7f848bbe56bf9b2434ff17..f6926b1066fde81b571a6e634b9afe25a0ef616a 100644 (file)
@@ -116,6 +116,7 @@ public class AltosBTDevice extends altos_bt_device implements AltosDevice {
        }
 
        public AltosBTDevice(String name, String addr) {
+               Altos.load_library();
                libaltos.altos_bt_fill_in(name, addr,this);
        }
 
index e30be05765598d1c034b1ee9613be44b93f8a36e..021e4d0bdc3bafa5e159f0b2bc329b327786b4da 100644 (file)
@@ -94,4 +94,12 @@ public class AltosBTKnown implements Iterable<AltosBTDevice> {
                bt_pref = AltosUIPreferences.bt_devices();
                load();
        }
-}
\ No newline at end of file
+
+       static AltosBTKnown     known;
+
+       static public AltosBTKnown bt_known() {
+               if (known == null)
+                       known = new AltosBTKnown();
+               return known;
+       }
+}
index 35fef08030c00bc6c37dbaadde46b728cbe1bdf1..cae41858d93525c851791b174b43e61378eaba70 100644 (file)
@@ -491,7 +491,7 @@ public class AltosConfig implements ActionListener {
                        try {
                                serial_line = new AltosSerial(device);
                                try {
-                                       if (!device.matchProduct(Altos.product_telemetrum))
+                                       if (!device.matchProduct(Altos.product_altimeter))
                                                remote = true;
                                        init_ui();
                                } catch (InterruptedException ie) {
index deb179d6e965ae78c2e504b58e9c14230ae4cc05..d0ed9325ac364234b2e2b7e7b552f2708e83e25e 100644 (file)
@@ -344,7 +344,7 @@ public class AltosConfigureUI
                manage_bluetooth = new JButton("Manage Bluetooth");
                manage_bluetooth.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
-                                       AltosBTManage.show(owner, Altos.bt_known);
+                                       AltosBTManage.show(owner, AltosBTKnown.bt_known());
                                }
                        });
                c.gridx = 0;
index e53e75c197bdd064988f2c18b375a7d5acbb2627..fa9d0013722ee88e5e48aa3df49e8bbe10bf16bd 100644 (file)
@@ -41,7 +41,7 @@ public class AltosDeviceDialog extends AltosDialog implements ActionListener {
        private AltosDevice[] devices() {
                java.util.List<AltosDevice>     usb_devices = AltosUSBDevice.list(product);
                int                             num_devices = usb_devices.size();
-               java.util.List<AltosDevice>     bt_devices = Altos.bt_known.list(product);
+               java.util.List<AltosDevice>     bt_devices = AltosBTKnown.bt_known().list(product);
                num_devices += bt_devices.size();
                AltosDevice[]                   devices = new AltosDevice[num_devices];
 
@@ -169,7 +169,7 @@ public class AltosDeviceDialog extends AltosDialog implements ActionListener {
                if ("select".equals(e.getActionCommand()))
                        value = (AltosDevice)(list.getSelectedValue());
                if ("manage".equals(e.getActionCommand())) {
-                       AltosBTManage.show(frame, Altos.bt_known);
+                       AltosBTManage.show(frame, AltosBTKnown.bt_known());
                        update_devices();
                        return;
                }
index 538f87348639a00195323db2e5ce987a8b777ce9..926d66f083a076c8634cbe4dc6e5a8db05542b46 100644 (file)
@@ -538,6 +538,7 @@ public class AltosUI extends AltosFrame {
        }
        
        public static void main(final String[] args) {
+               load_library(null);
                try {
                        UIManager.setLookAndFeel(AltosUIPreferences.look_and_feel());
                } catch (Exception e) {