X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosBTDevice.java;h=727a9f6625ce7953e251c94817cc9f5832c4b1ad;hp=233037de9893776e50571deaaab9088aa00d909b;hb=28d5239bff234cc1158a270a29c0e39067f613c3;hpb=5b3f18b38d80aa041b971204bf7a94278bd9584a diff --git a/altosui/AltosBTDevice.java b/altosui/AltosBTDevice.java index 233037de..727a9f66 100644 --- a/altosui/AltosBTDevice.java +++ b/altosui/AltosBTDevice.java @@ -16,40 +16,12 @@ */ package altosui; -import java.lang.*; -import java.util.*; import libaltosJNI.*; +import org.altusmetrum.altosuilib_1.*; -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"; @@ -59,6 +31,23 @@ 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 String getErrorString() { + altos_error error = new altos_error(); + + libaltos.altos_get_last_error(error); + return String.format("%s (%d)", error.getString(), error.getCode()); + } + public int getSerial() { String name = getName(); if (name == null) @@ -75,42 +64,61 @@ public class AltosBTDevice extends altos_bt_device { } 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 SWIGTYPE_p_altos_file open() { + return libaltos.altos_bt_open(this); } - public boolean isAltusMetrum() { - if (getName().startsWith(bt_product_telebt)) + /* + 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 (!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; + return getName().equals(other.getName()) && getAddr().equals(other.getAddr()); + } + + public int hashCode() { + return getName().hashCode() ^ getAddr().hashCode(); + } + + public AltosBTDevice(String name, String addr) { + Altos.load_library(); + libaltos.altos_bt_fill_in(name, addr,this); + } + + public AltosBTDevice() { + } } \ No newline at end of file