Я использую устройство 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()
завершается неудачно, так как устройство не отображается в перечисленном списке.
Если я добавлю sleep () после вызова к close()
:
hid_device.close()
time.sleep(1.0)
... перечисление выполнено успешно. Но очень неправильно включать произвольное время сна.
Есть ли вызов API или надежный метод, который сообщит мне, когда можно будет повторно перечислять? Или я должен просто обернуть вызов к open_path()
в цикле try / Кроме?