Linux

將鍵盤/紅外控制器連接到在螢幕中執行的命令行程序

  • April 20, 2014

我正在嘗試讓我的 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 庫並做一些有用的事情,而不是列印廢話。

引用自:https://unix.stackexchange.com/questions/125612