将键盘/红外控制器连接到屏幕中运行的命令行程序

将键盘/红外控制器连接到屏幕中运行的命令行程序

我正在尝试将我的 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 库并做一些有用的事情,而不是打印废话。

相关内容