我正在努力让我的Raspberry Pi功能成为一个无GUI的音乐播放器.我安装了Arch Linux,并通过ssh使用它.我还有一个红外接收器加密狗,我打算用它来控制音乐音量,跳到下一首歌,播放随机歌曲等.
IR加密狗识别为键盘,并写入/ dev / input / event0.起初我试图让它与LIRC一起工作,但显然假装它们是键盘的IR加密狗与LIRC不能很好地兼容.
我的问题是,现在我的IR接收器有一些类似键盘的输入,我怎么能把它输出到程序中呢?目前我在屏幕上使用cmus.
如果有一些一般的建议如何使我的设置工作,我会很高兴听到这个.如果没有,至少我想知道如何将IR接收器键盘连接到屏幕上运行的程序.
编辑:
我多么愚蠢,为什么我没想到只是抓住它.
但是,有一堆问题:
首先,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 |屏幕-rd或cat / dev / input / event0 |屏幕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库并执行一些有用的操作,而不是打印废话.