3

我正在尝试让 usb4java 包工作。我得到了基本连接,但是当我尝试获取产品、序列号或制造商时,我收到 USB 错误 12 或 8。我想我可能把库搞砸了。

我正在使用 Win 7 Pro 64 位操作系统 Service Pack 1。Eclipse 版本:Luna Service Release 2 (4.4.2) Build id:20150219-0600。
以下是我拥有的库:

引用的库:

编码:

` 导入 java.io。; 导入 java.util。; 导入 javax.usb.*;

public class PrettyUSBDeviceLister 
{
    public static void main(String[] args) throws UnsupportedEncodingException,  UsbException
    {
        UsbServices services = UsbHostManager.getUsbServices();
        UsbHub root = services.getRootUsbHub();
        System.out.println(" USB Root Hub: ");
        listDevices(root);
    } // main

    public static void listDevices(UsbHub hub) 

    {
        String prod = "";
        String sn   = "";
        String man  = "";

        List<UsbDevice> devices = hub.getAttachedUsbDevices();
    Iterator<UsbDevice> iterator = devices.iterator();
        while ( iterator.hasNext())
        {
            UsbDevice device = iterator.next();

        if((device.isUsbHub())) 
            {
            System.out.println("HUB: ");
                listDevices((UsbHub)device);            
            }

            try {
                prod = device.getProductString();
            } catch (UnsupportedEncodingException e) {
                prod = "UEE";
            } catch (UsbException e) {
                String ts = e.getLocalizedMessage();
                System.out.println(" USB e L msg = "+ts);
                prod = "UsbException\n " + e.toString();
            } catch (UsbDisconnectedException e) {
                prod = "USBdis";
            }

            System.out.println("Product : "+prod);

            try {
                sn = device.getSerialNumberString();
            --similar to the above--
            }

            System.out.println("Serial #: "+sn);

            try {
                man = device.getManufacturerString();
            --similar to the above--
            }

            System.out.println("Manufact: "+man);
            System.out.println();
        }
        System.out.println(" ... end Hub ....");
    } // static void listdevices(UsbHub root)
} // class PrettyUSBDeviceLister 

` 我已包含以下错误之一。对于获取产品、序列号或制造商的所有调用,我收到错误 8、13 或 NULL,

程序输出:

USB Root Hub: 

USB e L msg = USB 错误 12:无法打开设备总线 008 设备 002:ID 1058:1078:此平台上不支持或未实现操作 产品:UsbException USB 错误 12 序列号:UsbException USB 错误 12 javax.usb.UsbPlatformException :USB 错误 12:无法打开设备总线 008 设备 002:ID 1058:1078:在 org.usb4java 的 org.usb4java.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39) 的此平台上不支持或未实现操作。 javax.AbstractDevice.open(AbstractDevice.java:226) at org.usb4java.javax.AbstractDevice.getLanguages(AbstractDevice.java:538) at org.usb4java.javax.AbstractDevice.getUsbStringDescriptor(AbstractDevice.java:507) at org.usb4java .javax.AbstractDevice.getString(AbstractDevice.java:526) 在 org.usb4java.javax.AbstractDevice.getManufacturerString(AbstractDevice.java:304) 在 PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) 在 PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java:17) 制造商:UsbException USB 错误 12

USB e L msg = USB 错误 8:无法获取字符串描述符语言:溢出产品:UsbException USB 错误 8:序列号:null javax.usb.UsbPlatformException:USB 错误 8:无法获取字符串描述符语言:org.usb4java 溢出.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39) 在 org.usb4java.javax.AbstractDevice.getLanguages(AbstractDevice.java:544) 在 org.usb4java.javax.AbstractDevice.getUsbStringDescriptor(AbstractDevice.java:507) 在 org. usb4java.javax.AbstractDevice.getString(AbstractDevice.java:526) at PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) at PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java) :17) 制造商:UsbException USB 错误 8:

如何避免这种情况并获取读取数据?
谢谢你的帮助克里夫

4

0 回答 0