画面上で実行されるコマンドラインプログラムにキーボード/IRコントローラを接続します。

画面上で実行されるコマンドラインプログラムにキーボード/IRコントローラを接続します。

私はRaspberry PiをGUIのない​​音楽プレーヤーとして使用しようとしています。 Arch Linuxをインストールし、SSH経由で使用しています。また、音楽の音量調整、次の曲にスキップ、任意の曲の再生などに使用するIRレシーバーアダプタもあります。

IRアダプタはキーボードを認識し、/dev/input/event0に書き込みます。最初はLIRCで動作しようとしましたが、キーボードであるふりをするIRアダプタがLIRCで正しく機能していないようです。

私の質問は、IRレシーバーからキーボードなどの入力を受け取りましたが、これをプログラムにどのように送信しますか?現在私はcmusを画面に使用しています。

私の設定を操作する方法に関するいくつかの一般的な提案がある場合は、喜んで聞きたいです。そうでない場合は、少なくともIRレシーバーキーボードを画面上で実行されているプログラムに接続する方法を知りたいです。

編集する:

あまりにも愚かなので、それを入れるつもりはありませんでした。

しかし、一連の問題があります。

最初にcat /dev/input/event0mumble jumble(UTF-8端子には次のように表示されます。)�SS�xO��SS�xj��SS�x�SS入力バンジュル出力することができ、長く押すほど時間が長くなります。

第二に、まだsshで制御したいので、マルチプレクサを入力する必要があります。

第三に、次のように入力するとき:

cat /dev/input/event0 | screen -rdまたはcat /dev/input/event0 | screen cmus

それは文句を言う:

Must be connected to a terminal.

答え1

私があなたの状況を正確に理解しているかどうかはわかりませんが、

cat /dev/input/event0 | someprogram

標準入力と/ dev / input / event0に書き込むすべてを読み取るプログラムが必要です。

(IRレシーバーにデバイスファイルに書き込む方法を尋ねてください。これはIRアダプターでは実行できません。)

私の一般的なアドバイスは、Pythonスクリプトのファイルを読み、読み取った文字に応じて何かをすることができるということです。

inputCharStream = open('/dev/input/event0')
while True:
    c = inputCharStream.read(1)
    if c=='a':
        print "character a"
    if c==chr(1):
        print "byte 1 which is not printable"
        break

気にしないものを印刷する代わりに、いくつかのPythonライブラリを使用して便利な作業を実行できます。

関連情報