將鍵盤/紅外控制器連接到在螢幕中執行的命令行程序
我正在嘗試讓我的 Raspberry Pi 用作無 GUI 音樂播放器。我已經安裝了 Arch Linux,並通過 ssh 使用它。我還有一個 IR 接收器加密狗,我打算用它來控制音樂音量、跳到下一首歌曲、播放隨機歌曲等。
IR dongle 辨識為鍵盤,並寫入/dev/input/event0。起初我試圖讓它與 LIRC 一起工作,但顯然假裝是鍵盤的 IR 加密狗不能很好地與 LIRC 一起工作。
我的問題是,現在我已經從我的 IR 接收器獲得了一些類似鍵盤的輸入,我怎麼能將它傳送到程序?目前我在螢幕中使用 cmus 。
如果有一些關於如何使我的設置正常工作的一般建議,我會很高興聽到的。如果沒有,至少我想知道如何將 IR-receiver-keyboard 連接到螢幕上執行的程序。
編輯:
我怎麼這麼笨,我怎麼沒有想到簡單地把它放進去。
但是,有一堆問題:
首先,
cat /dev/input/event0
只輸出 mumble jumble(看起來像這樣,在 UTF-8 終端中: SS�xO��SS�xj��SS�x��SS�CO��SS�Cj��SS�C keypress 可能會輸出半行這樣的,而且你按下的時間越長,輸出的時間就越長。)。每次我按下遙控器的按鈕時它都會響應,但我不確定字節的編碼是什麼,它們只是掃描碼還是什麼。其次,我還是想通過 ssh 來控制它,所以我需要輸入多路復用器。
第三,當我輸入以下內容時:
cat /dev/input/event0 | screen -rd
或者cat /dev/input/event0 | screen cmus
它抱怨:
Must be connected to a terminal.
我不確定我是否正確理解您的情況,但是
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 庫並做一些有用的事情,而不是列印廢話。