Повторное открытие устройства HID сразу после закрытия: перечисление не выполнено - PullRequest
0 голосов
/ 06 марта 2019

Я использую устройство 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 / Кроме?

...