关闭后立即重新打开HID设备:枚举失败

时间:2019-03-06 17:37:33

标签: python-3.x usb hid hidapi

我使用的USB HID设备在更新其闪存后需要关闭并重新枚举。如果关闭后我立即重新打开设备,则该设备不会显示在枚举中。如果我稍等片刻,它会起作用:

hid_device = hid.device()

descriptors = hid.enumerate(VID, PID)
hid_device.open_path(descriptors[0]['path'])
... do stuff with device ...

hid_device.close()

descriptors = hid.enumerate(VID, PID) 
hid_device.open_path(descriptors[0]['path'])

在上面的代码段中,对open_path()的第二次调用失败,因为该设备未显示在枚举列表中。

如果我在调用close()之后添加了sleep():

hid_device.close()
time.sleep(1.0)

...枚举成功。但是,包括任意的睡眠时间是非常错误的。

是否有API调用或强大的技术可以告诉我何时可以重新枚举?还是应该将对open_path()的调用包装在try / except循环中?

0 个答案:

没有答案