X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosuilib%2FAltosUSBDevice.java;h=e4b94eeaed77efd12645dc208f57452f31fee2af;hp=2f4e0dc67b422dc885cdc5ee3f7e2ebc9d042dcb;hb=85104dbe9684af579c9255553b609fd28f8ee276;hpb=d83587c3c66b730cc54ca153714eee520ee40b2c diff --git a/altosuilib/AltosUSBDevice.java b/altosuilib/AltosUSBDevice.java index 2f4e0dc6..e4b94eea 100644 --- a/altosuilib/AltosUSBDevice.java +++ b/altosuilib/AltosUSBDevice.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,10 +16,11 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altosuilib; +package org.altusmetrum.altosuilib_13; import java.util.*; import libaltosJNI.*; +import org.altusmetrum.altoslib_13.*; public class AltosUSBDevice extends altos_device implements AltosDevice { @@ -50,7 +52,7 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return libaltos.altos_open(this); } - private boolean isAltusMetrum() { + public boolean isAltusMetrum() { if (getVendor() != AltosUILib.vendor_altusmetrum) return false; if (getProduct() < AltosUILib.product_altusmetrum_min) @@ -68,17 +70,21 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { if (want_product == AltosUILib.product_any) return true; + int have_product = getProduct(); + if (want_product == AltosUILib.product_basestation) - return matchProduct(AltosUILib.product_teledongle) || - matchProduct(AltosUILib.product_teleterra) || - matchProduct(AltosUILib.product_telebt) || - matchProduct(AltosUILib.product_megadongle); + return have_product == AltosUILib.product_teledongle || + have_product == AltosUILib.product_teleterra || + have_product == AltosUILib.product_telebt || + have_product == AltosUILib.product_megadongle; if (want_product == AltosUILib.product_altimeter) - return matchProduct(AltosUILib.product_telemetrum) || - matchProduct(AltosUILib.product_megametrum); - - int have_product = getProduct(); + return have_product == AltosUILib.product_telemetrum || + have_product == AltosUILib.product_telemega || + have_product == AltosUILib.product_easymega || + have_product == AltosUILib.product_telegps || + have_product == AltosUILib.product_easymini || + have_product == AltosUILib.product_telemini; if (have_product == AltosUILib.product_altusmetrum) /* old devices match any request */ return true; @@ -89,7 +95,33 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return false; } - static java.util.List list(int product) { + public int hashCode() { + return getVendor() ^ getProduct() ^ getSerial() ^ getPath().hashCode(); + } + + public AltosUsbId usb_id() { + return new AltosUsbId(getVendor(), getProduct()); + } + + public String usb_product() { + return getName(); + } + + public boolean equals(Object o) { + if (o == null) + return false; + + if (!(o instanceof AltosUSBDevice)) + return false; + AltosUSBDevice other = (AltosUSBDevice) o; + + return getVendor() == other.getVendor() && + getProduct() == other.getProduct() && + getSerial() == other.getSerial() && + getPath().equals(other.getPath()); + } + + static public java.util.List list(int product) { if (!AltosUILib.load_library()) return null; @@ -109,4 +141,4 @@ public class AltosUSBDevice extends altos_device implements AltosDevice { return device_list; } -} \ No newline at end of file +}