pyusb: один раз функция работает хорошо, второй раз не работает

У меня есть Raspberry Pi (я использую Linux) и устройство, которое измеряет некоторые значения.

У меня есть сервер Python, и когда клиент отправляет команду «Я хочу значения», я запрашиваю у устройства некоторые значения. Это функция для моего устройства:

def usbDevice:
      dev = usb.core.find(idVendor=0xXXXX, idProduct=0xXXXX)
      if dev is None:
         return 'Not found'
      dev.set_configuration()
      dev.write(1, '\x05', 0) # ask for the values
      time.sleep(2)
      ret = dev.read(0x81,2048 , 0,1200) # endpoint, siz, interf, timeout ->meas. vals
      print ret
      return ret

Когда я начинаю общение, оно всегда проходит хорошо (в обоих случаях я отправляю команду и получаю правильный ответ...). Однако во второй раз, когда я пытаюсь это сделать (неважно, слишком долго я жду или нет), я не получая ответа от устройства. Я знаю, что могу отправить запрос (я использовал печать «шаг XX», чтобы увидеть, где он терпит неудачу), но я не получаю ответа... Обычно я получаю исключение тайм-аута, но иногда получаю исключение «ресурс занят».

Должен ли я закрыть USB-соединение после первого использования? Как? Несмотря на то, что я всегда компилирую с разрешениями sudo, я создал файл .rules, поэтому думаю, что проблема не в этом.

Кроме того, я действительно хотел бы знать, что-то не так с этим способом установления связи USB, поскольку я использовал что-то подобное в прошлом. (и я плохо разбираюсь в питоне...)


person iluvatar    schedule 17.03.2013    source источник


Ответы (1)


Можете ли вы предоставить дополнительную информацию, такую ​​как дистрибутив Linux и номер ядра, например.

 uname -a

Существуют известные проблемы с USB. Хорошая новость заключается в том, что недавнее исправление может иметь разрешил их. По сути, используйте rpi-update, и он должен обновить ядро ​​(вам нужно как минимум #389) .

person TheDuke    schedule 19.03.2013
comment
Я думаю, что это может быть проблема с оборудованием, которая у меня была с моей малиной. Как только я получу еще один, я смогу ответить вам, будучи уверенным на 100% ... в любом случае, то, что вы предлагаете, кажется решением, как было сказано ранее, СПАСИБО за информацию !! - person iluvatar; 25.03.2013
comment
Да, это было так. Хорошо работает с последним Raspbian, но не с моим старым. Спасибо еще раз!! - person iluvatar; 29.03.2013