如何阅读&使用usb4java编写我的usb设备数据

时间:2015-11-18 06:27:52

标签: java usb4java

我想在java中使用usb4java lib读取和写入sandisk usb数据。

我可以获得USB设备列表。

但我不知道如何阅读我的USB数据。

这是我的转储usblist代码。

{
    // Create the libusb context
    Context context = new Context();

    // Initialize the libusb context
    int result = LibUsb.init(context);
    if (result < 0)
    {
        throw new LibUsbException("Unable to initialize libusb", result);
    }

    // Read the USB device list
    DeviceList list = new DeviceList();
    result = LibUsb.getDeviceList(context, list);
    if (result < 0)
    {
        throw new LibUsbException("Unable to get device list", result);
    }

    try
    {
        // Iterate over all devices and list them
        for (Device device: list)
        {
            int address = LibUsb.getDeviceAddress(device);
            int busNumber = LibUsb.getBusNumber(device);
            DeviceDescriptor descriptor = new DeviceDescriptor();
            result = LibUsb.getDeviceDescriptor(device, descriptor);
            if (result < 0)
            {
                throw new LibUsbException(
                    "Unable to read device descriptor", result);
            }
            System.out.format(
                "Bus %03d, Device %03d: Vendor %04x, Product %04x%n",
                busNumber, address, descriptor.idVendor(),
                descriptor.idProduct());
        }
    }
    finally
    {
        // Ensure the allocated device list is freed
        LibUsb.freeDeviceList(list, true);
    }

    // Deinitialize the libusb context
    LibUsb.exit(context);
}

此代码打印出所有USB设备。

但我想检查一下我的sandisk设备。

如何更改我的代码?

1 个答案:

答案 0 :(得分:0)

认为你必须在使用内核usb驱动程序写入和读取数据时嗅探操作系统请求。之后你应该向你的设备发送相同的请求。