altoslib: When flashing hardware, pull USB data from device if needed
[fw/altos] / altosuilib / AltosUSBDevice.java
index 16a0e7709dd5be7c3793bd3eb42c86c481164d6c..e4b94eeaed77efd12645dc208f57452f31fee2af 100644 (file)
@@ -20,6 +20,7 @@ package org.altusmetrum.altosuilib_13;
 
 import java.util.*;
 import libaltosJNI.*;
+import org.altusmetrum.altoslib_13.*;
 
 public class AltosUSBDevice  extends altos_device implements AltosDevice {
 
@@ -95,7 +96,15 @@ public class AltosUSBDevice  extends altos_device implements AltosDevice {
        }
 
        public int hashCode() {
-               return getVendor() ^ getProduct() ^ getSerial();
+               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) {
@@ -108,7 +117,8 @@ public class AltosUSBDevice  extends altos_device implements AltosDevice {
 
                return getVendor() == other.getVendor() &&
                        getProduct() == other.getProduct() &&
-                       getSerial() == other.getSerial();
+                       getSerial() == other.getSerial() &&
+                       getPath().equals(other.getPath());
        }
 
        static public java.util.List<AltosDevice> list(int product) {