altosui: Make AltosBTDevice implement AltosDevice interface
authorKeith Packard <keithp@keithp.com>
Thu, 14 Apr 2011 17:22:30 +0000 (10:22 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 14 Apr 2011 17:22:30 +0000 (10:22 -0700)
This will allow the use of either USB or BT devices through the
AltosDevice interface.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/Altos.java
altosui/AltosBTDevice.java
altosui/AltosUSBDevice.java

index 5df004c5b0dfda75b127eaab5429eb3901beba7a..d221077e290d542596354313e98cfdaa099a34dd 100644 (file)
@@ -301,4 +301,12 @@ public class Altos {
 
        public final static int product_any = 0x10000;
        public final static int product_basestation = 0x10000 + 1;
 
        public final static int product_any = 0x10000;
        public final static int product_basestation = 0x10000 + 1;
+
+       static String bt_product_telebt() {
+               if (load_library())
+                       return libaltosConstants.BLUETOOTH_PRODUCT_TELEBT;
+               return "TeleBT";
+       }
+
+       public final static String bt_product_telebt = bt_product_telebt();
 }
 }
index 233037de9893776e50571deaaab9088aa00d909b..5e946415235d7f24220ee637c24ed5762e3acb6d 100644 (file)
@@ -20,36 +20,9 @@ import java.lang.*;
 import java.util.*;
 import libaltosJNI.*;
 
 import java.util.*;
 import libaltosJNI.*;
 
-public class AltosBTDevice extends altos_bt_device {
-
-       static public boolean initialized = false;
-       static public boolean loaded_library = false;
-
-       public static boolean load_library() {
-               if (!initialized) {
-                       try {
-                               System.loadLibrary("altos");
-                               libaltos.altos_init();
-                               loaded_library = true;
-                       } catch (UnsatisfiedLinkError e) {
-                               loaded_library = false;
-                       }
-                       initialized = true;
-               }
-               return loaded_library;
-       }
-
-       static String bt_product_telebt() {
-               if (load_library())
-                       return libaltosConstants.BLUETOOTH_PRODUCT_TELEBT;
-               return "TeleBT";
-       }
-
-       public final static String bt_product_telebt = bt_product_telebt();
-       public final static String bt_product_any = "Any";
-       public final static String bt_product_basestation = "Basestation";
+public class AltosBTDevice extends altos_bt_device implements AltosDevice {
 
 
-       public String getProduct() {
+       public String getProductName() {
                String  name = getName();
                if (name == null)
                        return "Altus Metrum";
                String  name = getName();
                if (name == null)
                        return "Altus Metrum";
@@ -59,6 +32,16 @@ public class AltosBTDevice extends altos_bt_device {
                return name.substring(0,dash);
        }
 
                return name.substring(0,dash);
        }
 
+       public int getProduct() {
+               if (Altos.bt_product_telebt.equals(getProductName()))
+                       return Altos.product_telebt;
+               return 0;
+       }
+
+       public String getPath() {
+               return getAddr();
+       }
+
        public int getSerial() {
                String name = getName();
                if (name == null)
        public int getSerial() {
                String name = getName();
                if (name == null)
@@ -91,24 +74,28 @@ public class AltosBTDevice extends altos_bt_device {
 
        }
 
 
        }
 
-       public boolean isAltusMetrum() {
-               if (getName().startsWith(bt_product_telebt))
+       public SWIGTYPE_p_altos_file open() {
+               return libaltos.altos_bt_open(this);
+       }
+
+       private boolean isAltusMetrum() {
+               if (getName().startsWith(Altos.bt_product_telebt))
                        return true;
                return false;
        }
 
                        return true;
                return false;
        }
 
-       public boolean matchProduct(String want_product) {
+       public boolean matchProduct(int want_product) {
 
                if (!isAltusMetrum())
                        return false;
 
 
                if (!isAltusMetrum())
                        return false;
 
-               if (want_product.equals(bt_product_any))
+               if (want_product == Altos.product_any)
                        return true;
 
                        return true;
 
-               if (want_product.equals(bt_product_basestation))
-                       return matchProduct(bt_product_telebt);
+               if (want_product == Altos.product_basestation)
+                       return matchProduct(Altos.product_telebt);
 
 
-               if (want_product.equals(getProduct()))
+               if (want_product == getProduct())
                        return true;
 
                return false;
                        return true;
 
                return false;
index 03ddf5a89c1792415bc065f268bc0fdfc70ccf94..deed00568b1d023fe3ad50e332c6a83d45598e1b 100644 (file)
@@ -43,7 +43,7 @@ public class AltosUSBDevice  extends altos_device implements AltosDevice {
                return libaltos.altos_open(this);
        }
 
                return libaltos.altos_open(this);
        }
 
-       public boolean isAltusMetrum() {
+       private boolean isAltusMetrum() {
                if (getVendor() != Altos.vendor_altusmetrum)
                        return false;
                if (getProduct() < Altos.product_altusmetrum_min)
                if (getVendor() != Altos.vendor_altusmetrum)
                        return false;
                if (getProduct() < Altos.product_altusmetrum_min)