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 class AltosBTDevice extends altos_bt_device implements AltosDevice {
- 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 String getProduct() {
+ public String getProductName() {
String name = getName();
if (name == null)
return "Altus Metrum";
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 String toString() {
- String name = getName();
- if (name == null)
- name = "Altus Metrum";
return String.format("%-20.20s %4d %s",
- getProduct(), getSerial(), getAddr());
+ getProductName(), getSerial(), getAddr());
}
public String toShortString() {
- String name = getName();
- if (name == null)
- name = "Altus Metrum";
return String.format("%s %d %s",
- getProduct(), getSerial(), getAddr());
+ getProductName(), getSerial(), getAddr());
}
- 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;
+ System.out.printf("matchProduct %s %d\n", toString(), 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;
}
+
+ public boolean equals(Object o) {
+ if (!(o instanceof AltosBTDevice))
+ return false;
+ AltosBTDevice other = (AltosBTDevice) o;
+ System.out.printf("AltosBTDevice equals %s == %s\n", toString(), other.toString());
+ return getName().equals(other.getName()) && getAddr().equals(other.getAddr());
+ }
+
+ public int hashCode() {
+ return getName().hashCode() ^ getAddr().hashCode();
+ }
+
+ public AltosBTDevice(String name, String addr) {
+ libaltos.altos_bt_fill_in(name, addr,this);
+ }
+
+ public AltosBTDevice() {
+ }
}
\ No newline at end of file