我正在努力使用ir-keytable
和ir-ctl
命令以及rc_keymap
TOML 配置文件来替换遥控器,因为它们已经替换了 lirc。我正在使用 Raspberry OS bullseye
我的一个遥控器使用未知协议,因此我决定存储原始信号。
我首先使用存储每个按钮信号,ir-ctl -rMY_KEY.txt --mode2 -r --device=/dev/lirc1 -1
因为我知道特定的遥控器使用 38kHz 的载波,所以我按照carrier 38000
man 中的解释附加了每个信号。
如果我尝试使用 发送信号ir-ctl -sMY_KEY.txt
,它会触发预期的操作。
现在,我想使用 rc_keymap TOML 文件来存储遥控器,而不是每个按钮有 1 个文件,如下所述这里
因为我不知道协议,所以我使用协议raw
,所以我使用命令ir-ctl --mode2 -r --device=/dev/lirc1 -1
来检索每个按钮的信号,然后复制粘贴到我的 TOML 文件中。
我现在这样做了ir-ctl -kmy_remote.toml -KMY_kEY
。什么都没发生。如果我现在使用 a 执行相同的命令,--carrier 38000
它确实有效,并带有警告warning: carrier specified but overwritten on command line
我的问题是: rc_keymap 配置文件中定义的运营商值在哪里,如何覆盖它?我在文档中没有看到任何相关内容。
答案1
我必须阅读 C 代码ir-ctl
进行猜测,并找到答案。我们可以简单地carrier
在 TOML 文件中添加一个字段来设置该值。
所以,这确实有效
[[protocols]]
name = "MY_REMOTE"
protocol = "raw"
carrier = 38000