linux – 将键盘/ IR控制器连接到屏幕上运行的命令行程序

我正在努力让我的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库并执行一些有用的操作,而不是打印废话.

上一篇:java – 按下键盘上的某个键时结束程序


下一篇:Android键盘与ListView重叠