linux上插入一个usb设备,遍历发现其使用了两个节点(hidraw0和hidraw1)
使用open_path参数写hidraw0 可以成功打开, 使用hidraw1不可以
这个就很奇怪了,因为使用 hidapi 的 hid_enumerate 接口遍历说占用了2个hidraw,
难办的是,如果我有多个相同 vendor_id 、product_id 的设备要控制, 通过 hid_enumerate 就有点混乱了
有什么可行的方案吗?
上面说的插一个usb能遍历出2个(1个是无效的),为什么会这样?
hid_device_info结构体成员next不是指向下一个设备的指针吗?
我的部分代码
hid_device_info *info = hid_enumerate(vendor_id, product_id);
hid_device_info *first = info;
for(;info != nullptr; info = info->next) {
cout << "info: " << hex << info << endl;
cout << "path: " << info->path << endl;
cout << "vendor_id: 0x" << hex << info->vendor_id << endl;
cout << "product_id: 0x" << hex << info->product_id << endl;
}