Драйвер контроллера PS3 -> uinput-> python? как-то?

Я пытаюсь читать с контроллера PS3 в python на Ubuntu, и я не очень повезло. Я начал с драйвера ps3joy из Willow Garage (http://www.ros.org/wiki/ps3joy), который предположительно публикует все важные биты контроллера PS3 в нечто, о чем я никогда не слышал, называется "uinput". По-видимому, это функция Linux, которая позволяет драйверам пользовательского пространства предоставлять системные события. ... Почему для драйвера WG требуется root-доступ, учитывая, что это якобы драйвер пользовательского пространства, я не понимаю, но это не мой вопрос.

В любом случае, в настоящее время я пытаюсь заставить его работать: у меня работает драйвер, и я проверил, что он реагирует на нажатия кнопок на контроллере, но я не знаю, как вытащить любые из этих данных, чтобы я мог их использовать.

Моей первой догадкой было использовать pygame для (надеюсь) чтения из /dev/uinput (я почти уверен, что драйвер отправляет данные):

from pygame import joystick
if not joystick.get_init():
  joystick.init()
js = joystick.Joystick(0)  # there is only one joystick... even if the driver isn't running(!)
js.init()
print js.get_numbuttons()  # perhaps coincidentally correctly prints 17 which is the number of buttons on a PS3 controller
for i in range(js.get_numaxes()):
  print js.get_axis(i)   # always prints 0, no matter what I'm doing with the controller

но это не сработало. Самая важная часть проблемы заключается в том, что она делает то же самое, если у меня вообще не работает драйвер WG.

Я уверен, что это что-то простое, что я просто не читаю нужную информацию, но поиск в Google не помог мне найти нужную информацию, и я начинаю уставать и отчаиваться.

5
задан teryret 27 May 2012 в 03:46
поделиться