Как считывать информацию о прокрутке колеса с / dev / input / mice?

Для проекта домашней робототехники мне нужно зачитать информацию о движении мыши. Я частично преуспел в этом, используя скрипт python из этого SO-ответа . Он в основном считывает / dev / input / mice и преобразует шестнадцатеричный ввод в целые числа:

import struct file = open( "/dev/input/mice", "rb" ) def getMouseEvent(): buf = file.read(3) button = ord( buf[0] ) bLeft = button & 0x1 bMiddle = ( button & 0x4 ) > 0 bRight = ( button & 0x2 ) > 0 x,y = struct.unpack( "bb", buf[1:] ) print ("L:%d, M: %d, R: %d, x: %d, y: %d\n" % (bLeft,bMiddle,bRight, x, y) ) while True: getMouseEvent() file.close() 

Это отлично работает, за исключением того факта, что отсутствует информация о колесе прокрутки. Кто-нибудь знает, как я могу получить (предпочтительно с python) информацию о колесе прокрутки от / dev / input / mice?

[EDIT] Хорошо, хотя мне не удалось прочитать / dev / input / mice, я думаю, что нашел решение. Я только что нашел модуль evdev (sudo pip install evdev), с помощью которого вы можете считывать входные события. Теперь у меня есть следующий код:

 from evdev import InputDevice from select import select dev = InputDevice('/dev/input/event3') # This can be any other event number. On my Raspi it turned out to be event0 while True: r,w,x = select([dev], [], []) for event in dev.read(): # The event.code for a scroll wheel event is 8, so I do the following if event.code == 8: print(event.value) 

Теперь я собираюсь проверить это на моем распи и посмотреть, как это работает. Спасибо за все вдохновенные парни и девушки!

One Solution collect form web for “Как считывать информацию о прокрутке колеса с / dev / input / mice?”

Если у вас есть только 3 байта на событие в / dev / input / mice, это означает, что ваша мышь сконфигурирована как мышь PS / 2 без колесика. Если вы сконфигурируете мышь в качестве мыши IMPS / 2, для каждого события должен быть четвертый байт в / dev / input / mice. Последний байт будет содержать информацию о колесе.

  • попытка импортировать модуль: undefined symbol: PyUnicodeUCS4_DecodeUTF8
  • случайная генерация уникальной комбинации из двух столбцов
  • Выполнить команду Linux и получить PID
  • python: undefined symbol: PyUnicodeUCS2_DecodeUTF8
  • Как добавить расширения файлов на основе типа файла в Linux / Unix?
  • Python - Когда это нормально использовать os.system () для выдачи общих команд Linux
  • Как упаковать демона Python с помощью setuptools
  • Как установить PyGObject с поддержкой Python 3
  • Подождите, пока не закончится определенный процесс (зная «pid»)
  • Каковы события Tkinter для горизонтальной прокрутки по фронту (в Linux)?
  • Как переписать вывод в терминале
  • Python - лучший язык программирования в мире.