我正在尝试将我的 Raspberry Pi 用作无 GUI 音乐播放器。我已经安装了 Arch Linux,并通过 ssh 使用它。我还有一个红外接收器适配器,我打算用它来控制音乐音量、跳到下一首歌曲、播放随机歌曲等。
IR 适配器识别为键盘,并写入 /dev/input/event0。起初,我试图让它与 LIRC 一起工作,但显然,假装自己是键盘的红外适配器不能与 LIRC 一起正常工作。
我的问题是,现在我已经从红外接收器获得了一些类似键盘的输入,我如何将其传输到程序?目前我在屏幕上使用cmus。
如果有一些关于如何使我的设置工作的一般性建议,我会很高兴听到。如果没有,至少我想了解如何将红外接收器键盘连接到屏幕上运行的程序。
编辑:
我真是太蠢了,为什么我没有想到简单地把它放进去。
然而,存在一系列问题:
首先,cat /dev/input/event0
只输出 mumble jumble (在 UTF-8 终端中看起来像这样:�SS�xO��SS�xj��SS�x��SS�CO��SS�Cj��SS�C。一按键可能会输出半行,按的时间越长,输出的时间就越长。)。每次我按下遥控器上的按钮时,它肯定都会做出响应,但我不确定字节的编码是什么,它们只是扫描码还是什么。
其次,我仍然想从 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。
(请问您如何使红外接收器写入设备文件。这是我用红外适配器未能完成的事情。)
我的一般建议是从 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 库并做一些有用的事情,而不是打印废话。