我有一个关于Debian中的LIRC的问题。我现在已经找了几天了,没有找到任何解决我的问题的方法。
可以使用红外线遥控器发送键盘通信吗?
我将解释:我在shell脚本中使用"read“函数。也就是说,我按下"T“键,就会发生一些事情。现在,我想通过LIRC发送相同的"T“,这样shell脚本也可以与遥控器一起工作。
另一种方式是,不是在shell脚本中,而是在我的C程序源代码中。我在这里使用的代码如下:
case 't': {因此,如果按下键盘上的按钮"t“,就会发生一些事情。
我希望有人能帮助我使用LIRC,因为我看不懂LIRC网页上的描述。每一个例子都是基于他们已经支持lirc命令的程序。
非常感谢托马斯
发布于 2013-12-26 08:10:38
假设您知道如何使用lircd、irexec并通过/etc/lircd.conf和/etc/lircrc对其进行配置,那么您的/etc/lircrc中可能会有如下内容:
begin
remote = name-of-your-remote
prog = irexec
button = BTN_1
config = echo T >/dev/xxx
end应在/etc/lircd.conf中配置BTN_1,以便与远程IR键盘上的'T‘键匹配。
xxx是活动shell使用的TTY设备,例如,我用/dev/pts/0尝试过它
如果您需要从自定义程序的stdin访问它,您可以使用以下配置:
begin
remote = name-of-your-remote
prog = irexec
button = BTN_1
config = echo T | your-prog
end发布于 2020-10-25 00:32:40
我发现lircd-uinput.service用于将键盘事件发送到/dev/uinput,基本上是发送到控制台。如果您想使用遥控器将键盘键发送到控制台上运行的自定义菜单或程序,这是一个方便的服务。该服务的问题在于,它一直重复这个键,直到它收到一个释放代码。
“重复”的行为是设计出来的,我猜是因为大多数写得很好的应用程序可能会在按下一个键时发送一个KEY_DOWN,然后在释放时发送一个KEY_UP。但是我的简单应用程序不够智能,不能发送释放代码,所以我找到了一个简单的解决重复按键问题的方法,可以使用该服务通过红外遥控器伪造键盘。
要使lircd-uinput.service自动注册释放键事件,并停止重复该键,请编辑该服务并添加-- add -release-events选项。
sudo nano /lib/systemd/system/lircd-uinput.service
####find this line####
ExecStart=/usr/sbin/lircd-uinput
####change to#########
ExecStart=/usr/sbin/lircd-uinput --add-release-events重新启动服务并确保它们处于活动状态。
sudo systemctl force-reload lircd
sudo systemctl force-reload lircd-uinput
sudo systemctl status lircd
sudo systemctl status lircd-uinput
#I had to start lircd-uinput, since force-reload didn't:
sudo systemctl start lircd-uinput现在,该服务在每次远程按钮按下时只输入一次按键,并自动发送KEY_UP命令。如果您知道如何在应用程序中发送KEY_UP命令,那么它可能比这个解决方案工作得更好。
要找出与键盘键对应的键命令,可以通过运行以下命令列出内核支持的所有可能的键盘事件:
不记录-l
例如,如果您希望遥控器按控制台上的向下箭头键,则相应的远程键为' key _ down‘。那么您的远程文件(/etc/lirc/lircd.conf.d/myremote.conf)将包含该密钥名称。
begin remote
name myremote
#<sniped...remote stuff here...>
begin codes
# <sniped other codes>
KEY_DOWN 0x00FF
# <sniped other codes>
end codes
end remote现在我们已经停止了键的重复,这是一个非常有用的服务。它比使用irexec在控制台上伪造键盘键更具响应性,而且不需要在irexec.lircrc中进行任何配置就可以将击键发送到控制台。您仍然可以将irexec用于其他与键盘无关的命令。
https://stackoverflow.com/questions/19536799
复制相似问题