android 获取 usb_interface_descriptor, usb_endpoint_descriptor

标签 android linux usb libusb

在方法中usb_device_new()他们正在阅读 usb_device_descriptor使用此函数调用:

read(fd, device->desc, sizeof(device->desc));

首先,它是如何工作的,在打开设备后从文件描述符中读取。你怎么知道 usb_device_descriptor 是什么将被读取?我觉得这有点令人困惑。

我的第二个问题是如何阅读 usb_interface_descriptorusb_endpoint_descriptor来自 usb_device?

谢谢。

最佳答案

我发现他们如何设法检索接口(interface)和端点的详细信息:

while ((desc = usb_descriptor_iter_next(&iter)) != NULL) 
    {
        if (desc->bDescriptorType == USB_DT_INTERFACE) 
        {
            struct usb_interface_descriptor *interface = (struct usb_interface_descriptor *) desc;

            interfaceValues.add(interface->bInterfaceNumber);
            interfaceValues.add(interface->bInterfaceClass);
            interfaceValues.add(interface->bInterfaceSubClass);
            interfaceValues.add(interface->bInterfaceProtocol);
            interfaceValues.add(interface->bNumEndpoints);
        } 
        else if (desc->bDescriptorType == USB_DT_ENDPOINT) 
        {
            struct usb_endpoint_descriptor *endpoint = (struct usb_endpoint_descriptor *) desc;

            endpointValues.add(endpoint->bEndpointAddress);
            endpointValues.add(endpoint->bmAttributes);
            endpointValues.add(__le16_to_cpu(endpoint->wMaxPacketSize));
            endpointValues.add(endpoint->bInterval);
        }
    }

我只需要在 this 中对框架进行更深入的挖掘。文件。

关于android 获取 usb_interface_descriptor, usb_endpoint_descriptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781755/

相关文章:

javascript - 将 PDF 文件从 Web 应用程序写入 U 盘

android - 如何在 Android 2.2 中获取我的电话号码

android - intel xdk app install 替换之前的apk

java - 根据屏幕方向在微调器和 ListView 之间切换

Linux:多核 CPU 中的进程和线程

linux - Jungo WinDriver 需要一个 linux 符号链接(symbolic link),这是什么意思?

java - 新布局不弹出

c - 获取 ACM 驱动程序赋予 USB 的节点名称

linux - 如果特定字符串在 bash 中使用 sed 在模式之间匹配,则在前后添加字符串

c# - 从 Fairbanks SCB-9000 USB 秤读取重量