• Почему возникает ошибка hid.HIDException: unable to open device?

    @tailgrab Автор вопроса
    Все оказалось проще после потери связи нужно вызвать:
    hid.hidapi.hid_exit()
  • Почему возникает ошибка hid.HIDException: unable to open device?

    @tailgrab Автор вопроса
    eegmak, если устройство не вынималось, после запуска можно хоть 5раз вызвать.
    После перезапуска-либо убить процесс, либо паралельно запустить ещё один экземпляр - тогда работает.
    Я уже думал сделать на pyusb отслеживание подключения и вторым скриптом получать данные, но это какой костыль дикий
  • Почему возникает ошибка hid.HIDException: unable to open device?

    @tailgrab Автор вопроса
    eegmak, пока просто ардуина, которая отправляет raw-данные. pyusb использует libusb - он нормально распознает подключена ардуина или нет, однако под Mac у него нет доступа к HID(можно поправить это ядре - но решение не универсальное совсем). Остается в роли backend использовать iohidmanager.
    + Если просто в интерактивном режиме сделать:
    import hid
    hidraw = hid.Device(0х2341, 0х8036)
    hidraw.close()

    А потом переподключить ардуину и опять выполнить hid.Device(0х2341, 0х8036), все равно возникает ошибка unable to open device.
    C sudo все равно такая же петрушка - проверял

    Под win проблем нет - все стабильно работает, но нужно еще и на MacOS завести.
  • Почему возникает ошибка hid.HIDException: unable to open device?

    @tailgrab Автор вопроса
    eegmak,
    Я хочу добиться, чтобы скрипт в итоге крутился как демон и постоянно ждал данных с устройства, а устройство можно было спокойно физически отключать и подключать.
    Версия ОС 10.15.4
    HID v.1.0.4. Попробовал несколько форков, но результат не меняется.
    HIDAPI 0.7.0

    import hid
    
    vid = 0x2341	
    pid = 0x8036	
    
    while True:
        try:
            hidraw = hid.Device(vid, pid)
            data = hidraw.read(64, 200)
            print(data)
            hidraw.close()
        except hid.HIDException as ex:
            print(ex)