c++ - 是否可以使用 libusb 获取设备在 usb 上的位置

标签 c++ usb libusb

我有几个 USB 设备,包括设备本身和一个内部 USB 集线器,以便链式连接更多此类设备。是否有可能使用 libusb 或 C++ 程序中的任何类似的东西获得一个特定设备在此 usb 链上的实际位置?

在 linux 上使用 lsusb -t 我可以获得如下所示的总线树

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
    |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
    |__ Port 3: Dev 5, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 1: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 3: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 4: Dev 9, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M
    |__ Port 4: Dev 20, If 0, Class=Hub, Driver=hub/2p, 480M
        |__ Port 2: Dev 21, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M

在 mac 上我可以使用 system_profiler SPUSBDataType 来获得类似的东西。我也可以使用 libusb 以编程方式获取它吗?

最佳答案

关于c++ - 是否可以使用 libusb 获取设备在 usb 上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916830/

相关文章:

c++ - 编译时 std::ratio 平方根的有理逼近

android - Google Glass 未被 ADB 列为 Android 设备

c - 如何防止在 USB 传输中丢失数据?

c++ - 使用 libftdi 或 libusb 按名称打开设备

linux - 有没有办法使用 libusb API 获取 USB 设备的设备节点?

c++ - 程序编译并执行,但输出的最大值不合理。 long double如何显示?

c++ - 定义一个 void f(void) 函数但具有来自同一范围的变量?

c++ - 比较 double

android - 是否可以使用 Android SDK 选择备用 USB 接口(interface)?

linux - 无法通过 libusb 传输数据