X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=micropeak%2FMicroUSB.java;h=906458c47bccb950bdb8abdc0e257f7c815f6ff2;hp=24f6722b79a9b69d9e47a2d6ebe9fe210fd17395;hb=4a33336b8f468c5b0f2e14c0ee0242c9a24a8b90;hpb=bd440afc2a6e37b74fffcf1b977e149485095316 diff --git a/micropeak/MicroUSB.java b/micropeak/MicroUSB.java index 24f6722b..906458c4 100644 --- a/micropeak/MicroUSB.java +++ b/micropeak/MicroUSB.java @@ -19,7 +19,8 @@ package org.altusmetrum.micropeak; import java.util.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib_3.*; +import org.altusmetrum.altoslib_7.*; +import org.altusmetrum.altosuilib_7.*; public class MicroUSB extends altos_device implements AltosDevice { @@ -74,25 +75,50 @@ public class MicroUSB extends altos_device implements AltosDevice { return libaltos.altos_open(this); } + private boolean isFTDI() { + int vid = getVendor(); + int pid = getProduct(); + if (vid == 0x0403 && pid == 0x6015) + return true; + return false; + } + private boolean isMicro() { - if (getVendor() != 0x0403) - return false; - if (getProduct() != 0x6015) - return false; - return true; + int vid = getVendor(); + int pid = getProduct(); + if (vid == AltosLib.vendor_altusmetrum && + pid == AltosLib.product_mpusb) + return true; + return false; } public boolean matchProduct(int product) { - return isMicro(); + return isFTDI() || isMicro(); } static java.util.List list() { if (!load_library()) return null; - SWIGTYPE_p_altos_list list = libaltos.altos_ftdi_list_start(); - ArrayList device_list = new ArrayList(); + + SWIGTYPE_p_altos_list list; + + list = libaltos.altos_ftdi_list_start(); + + if (list != null) { + for (;;) { + MicroUSB device = new MicroUSB(); + if (libaltos.altos_list_next(list, device) == 0) + break; + if (device.isFTDI()) + device_list.add(device); + } + libaltos.altos_list_finish(list); + } + + list = libaltos.altos_list_start(); + if (list != null) { for (;;) { MicroUSB device = new MicroUSB(); @@ -106,4 +132,4 @@ public class MicroUSB extends altos_device implements AltosDevice { return device_list; } -} \ No newline at end of file +}