11

セットアップ: 最小限の Linux (ASUS ルーター上の OpenWRT)、USB キーボード (/dev/hiddev0 のようなデバイス名を知っていると仮定)

目標: このデバイスをリッスンし、ユーザー入力に基づいていくつかのアクションを実行する Python (またはシェル、この場合は Python のプロキシのように使用できます) スクリプトを作成します。

手始めに、ユーザーが入力した文字を指定された名前のテキスト ファイルにエコーするのに十分です。

PyUSB は本当に混乱しているように見えます。PySerial は問題ありませんが、タスクに適しているかどうかはわかりません。デバイスを開こうとすると、「serial.serialutil.SerialException: Could not configure port: (22, 'Invalid argument')」と表示されます。

UPD:まあ、わかりました、簡単な答えは「cat /dev/input/event1」でした

しかし、出力は本当に不可解です - それを解釈するためのヒントはありますか (文字の int コードとして)?

UPD UPD : hexdump /dev/input/event1 の方がはるかに優れています! キーを押すたびに6つの9タプルが得られます(キーダウンで3つ、キーアップで3つだと思います)おそらく解読するのはそれほど難しくありません

しかし、より市民的な方法は依然として高く評価されています

http://svn.navi.cx/misc/trunk/python/evdev/evdev.py面白そうですね...

4

2 に答える 2

6

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

そしてそれを注意深く読んでください

于 2011-05-15T22:30:25.307 に答える
3

後でこの質問を発見した人のために(私に起こったように):Georgi Valkovによるevdev用の素晴らしいライブラリがあります:

https://github.com/gvalkov/python-evdev

http://python-evdev.readthedocs.org/en/latest/index.html

于 2014-05-03T09:22:54.800 に答える