Подтвердить что ты не робот

Слушайте USB-клавиатуру с Python

Настройка: минималистический Linux (OpenWRT на маршрутизаторе ASUS), USB-клавиатура (предположим, что я знаю имя устройства, например /dev/hiddev 0)

Цель: написать питон (или оболочку, в этом случае я могу использовать его как прокси для python) script, который будет прослушивать это устройство и выполнять некоторые действия на основе пользовательского ввода

В начале - достаточно, чтобы эхо вводить введенные символы в текстовый файл с заданным именем.

PyUSB выглядит очень запутанным. Я в порядке с PySerial, хотя я не уверен, подходит ли ему эта задача - при попытке открыть устройство он говорит: "serial.serialutil.SerialException: не удалось настроить порт: (22," Invalid argument ")"

UPD: ну, ну, тривиальный ответ был "cat/dev/input/event1"

Но вывод действительно загадочный - любой намек на его интерпретацию (как коды символов)?

UPD UPD: hexdump/dev/input/event1 намного лучше! он дает 6 9 кортежей для каждого нажатия клавиши (я полагаю, 3 для ключа вниз, 3 для ключа) Вероятно, это не было бы , поэтому было сложно его расшифровать.

Но более гражданский путь по-прежнему высоко ценится

http://svn.navi.cx/misc/trunk/python/evdev/evdev.py выглядит интересным...

4b9b3361

Ответ 1

http://svn.navi.cx/misc/trunk/python/evdev/evdev.py - это реальный ответ - вывод очень подробный и готовый .poll() метод, который возвращает события.

единственная проблема, с которой я столкнулся - с ошибкой readMetadata() с ошибкой 22. Затем я прокомментировал ее вызов, и он работал как шарм

На самом деле, я загрузил более новую версию из http://autokey.googlecode.com/svn/trunk/src/lib/evdev.py

Добавить: чтобы узнать фактическое событиеN,

cat /proc/bus/input/devices

и внимательно прочитайте его