我有几个 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
以编程方式获取它吗?
最佳答案
是的。参见 libusb_get_port_numbers:
http://libusb.sourceforge.net/api-1.0/group__dev.html#gaa4b7b2b50a9ce2aa396b0af2b979544d
关于c++ - 是否可以使用 libusb 获取设备在 usb 上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916830/