diff options
| author | Keith Packard <keithp@keithp.com> | 2011-04-14 10:22:30 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-04-14 10:22:30 -0700 | 
| commit | 84163eee7847a09fe78f8762b28f857d76bf5755 (patch) | |
| tree | bfb8063450c545550cc2a428ae80ff1307bf15f0 | |
| parent | 9cdef76c1275b343099d0d01af82d7eadd36a410 (diff) | |
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 <keithp@keithp.com>
| -rw-r--r-- | altosui/Altos.java | 8 | ||||
| -rw-r--r-- | altosui/AltosBTDevice.java | 59 | ||||
| -rw-r--r-- | altosui/AltosUSBDevice.java | 2 | 
3 files changed, 32 insertions, 37 deletions
| 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) | 
