From: Keith Packard Date: Thu, 14 Apr 2011 17:22:30 +0000 (-0700) Subject: altosui: Make AltosBTDevice implement AltosDevice interface X-Git-Tag: 0.9.3~60 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=84163eee7847a09fe78f8762b28f857d76bf5755 altosui: Make AltosBTDevice implement AltosDevice interface This will allow the use of either USB or BT devices through the AltosDevice interface. Signed-off-by: Keith Packard --- diff --git a/altosui/Altos.java b/altosui/Altos.java index 5df004c5..d221077e 100644 --- a/altosui/Altos.java +++ b/altosui/Altos.java @@ -301,4 +301,12 @@ public class Altos { 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(); } diff --git a/altosui/AltosBTDevice.java b/altosui/AltosBTDevice.java index 233037de..5e946415 100644 --- a/altosui/AltosBTDevice.java +++ b/altosui/AltosBTDevice.java @@ -20,36 +20,9 @@ import java.lang.*; 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"; @@ -59,6 +32,16 @@ public class AltosBTDevice extends altos_bt_device { 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) @@ -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; } - public boolean matchProduct(String want_product) { + public boolean matchProduct(int want_product) { if (!isAltusMetrum()) return false; - if (want_product.equals(bt_product_any)) + if (want_product == Altos.product_any) 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; diff --git a/altosui/AltosUSBDevice.java b/altosui/AltosUSBDevice.java index 03ddf5a8..deed0056 100644 --- a/altosui/AltosUSBDevice.java +++ b/altosui/AltosUSBDevice.java @@ -43,7 +43,7 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return libaltos.altos_open(this); } - public boolean isAltusMetrum() { + private boolean isAltusMetrum() { if (getVendor() != Altos.vendor_altusmetrum) return false; if (getProduct() < Altos.product_altusmetrum_min)