我们可以使用libusb_device对象,在不使用libusb_open打开USB设备的情况下获取USB设备的基本信息。其中包括USB Descriptor、USB Configuration、USB Bus ID、USB Device ID和USB Port ID,USB连接速度等。
1. 获取USB Bus ID
函数定义如下:
uint8_t libusb_get_bus_number (libusb_device *dev)
dev:为通过libusb_get_device_list或者libusb_hotplug_callback_fn获取的libusb_device对象,后续不再赘述
返回值:为 bus id
2. 获取USB Device ID
函数定义如下:
uint8_t libusb_get_device_address (libusb_device *dev)
返回值:为device id
3. 获取USB Port ID
函数定义如下:
int libusb_get_port_numbers (
libusb_device *dev,
uint8_t *port_numbers,
int port_numbers_len)
port_numbers:为待返回的port层级ID组成的数组
port_numbers_len:为port_numbers数组长度,当前USB3.0支持最大长度为7
返回值:为填入的ID个数(层级数)。如果传入的port_numbers数组过小,会返回LIBUSB_ERROR_OVERFLOW错误
4. 获取USB连接速度
函数定义如下:
int libusb_get_device_speed (libusb_device *dev)
返回libusb_speed表示的速度值,LIBUSB_SPEED_UNKNOWN表示系统无法侦测连接速度
5. 获取USB Descriptor信息
USB Descriptor信息中包括此设备的PID和VID,Device Class、USB协议版本以及最重要的Configuration数量
函数定义如下:
int libusb_get_device_descriptor (
libusb_dev