问题标签 [lirc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1371 浏览

raspberry-pi - 无法让 irexec 在 RPi 上工作

我正在尝试在 Raspberry Pi 上使用由 GPIO 驱动的 IR 接收器 LED。我设置了 lircd,用 irrecord 教它遥控器,irw 显示我正在按下的键:

然而 irexec 没有做任何事情。

我的 ~/.lircrc 看起来像这样:

我像这样开始 irexec :

然后似乎它正在等待输入,但什么也没有。

如何检查 irexec 是否正在获取按键?我怎样才能让它工作?

0 投票
2 回答
15798 浏览

raspberry-pi - 如何使用具有 2ms 时间而不是默认 5ms 的 irrecord?

我正在尝试在我的 Raspberry Pi 上教 lirc 我的热泵的远程代码 - 三菱电机 MSZ-GE60VA(遥控器是 SG10A 1833)

我运行 irrecord 如下:

我得到了关于按按钮等的惯常做法,并按时这样做。

在几个点(并不总是相同的数字)之后,irrecord 退出并显示以下错误消息:

现在,我在别处发现采样率可能是错误的,并使用 xmode2 查看波形 - 我已经这样做了。我敢肯定,如果我能像 xmode2 那样让 irrecord 更快地采样,我会有更多的运气。

有任何想法吗?(注意:我也使用了 force 选项,没有区别)

这是我使用 xmode2 得到的结果——你可以看到 5ms 的样本不能真正产生信号的正面或反面,但 2ms 的样本可以。

5ms 示例 http://jnawk.net.nz/5ms.png 5ms 示例(默认)

2ms 示例 http://jnawk.net.nz/2ms.png 2ms 示例

0 投票
2 回答
549 浏览

linux - Lircd.conf:释放按钮时,我的遥控器发送 pre_data 没有键码

我想“伪造”一个遥控器来做一些家庭自动化并打开我的电视 STB。这不是关于“接收”而是“传输”给接收者。

我想出了相关遥控器的代码,它有点工作。但是,我的电视机顶盒似乎通过再次发送预数据然后停止传输来检测按钮按下(以及多次重复按钮按下)的结束,而没有密钥的实际代码。

为了说明这一点,在模式 2 中,当我连续按下电源两次(但在两者之间释放按钮)时,我会收到以下一系列脉冲和空格:

每一行都是重复的代码,用示波器,我测的差距要大很多(大约120ms)

奇怪的是:似乎没有切换位,但传输似乎在第 7 个脉冲结束,而不是在整个单词的末尾。这对所有键都是一样的。

正如我所提到的,这似乎是相关的,因为我无法打开电视盒(连续按两次电源)或更改例如频道 11 或 22。

我该如何实施?有任何想法吗?

我的 lirc 文件如下所示:

我尝试尝试以与前数据相同的方式定义“后数据”,但由于差距过长,这无法正常工作,并且“后数据”不应成为任何重复的一部分。

我讨厌修改 lirc 并重新编译,因为这总是会在更新、系统更改等方面大惊小怪,老实说,我想避免如此深入。

这可以通过脚本来完成而不会引入太多延迟(例如,仅定义远程发送 pre_data 的“停止代码”)。“伪装成遥控器”的盒子是一个相当强大的带有Debian的arm处理器(Allwinner A20处理器)。任何帮助表示赞赏

0 投票
1 回答
2021 浏览

python - 即使关闭阻塞,Python Lirc 也会阻塞代码

我正在尝试在运行最新Rasbian Wheezy发行版的Raspberry Pi B+上使用OWN(开放天气网络)设置滚动天气提要,但在使用Python LIRC(Linux Infrared Remote Control)添加 IR 支持时遇到问题。

我正在尝试做的事情: 有四个天气变量:条件、温度、湿度和风速。它们将出现在我的 16x2 LCD 屏幕上,其标题位于第一行,数值位于第二行。它们将在屏幕上停留五秒钟,然后被下一个替换。一旦到达终点,它将再次循环。在它循环 180 次(大约一小时)后,它将更新天气。我想使用 IR 遥控器的按钮 1-4 跳转到特定的磁贴,然后继续返回它的循环。

它在做什么: 当没有按下任何按钮时,它不会像在LIRC阻塞的情况下那样跳过空队列,而是挂在lirc.nextcode()上等待按下按钮,直到我用KeyboardInterrupt退出。

一切都很好,直到我添加了 IR。现在它显示第一个天气变量,然后当它尝试拉下一个天气变量时,如果队列中没有 IR 代码,而不是跳过并转到下一个图块,lirc.nextcode()会暂停代码,直到它收到一个 IR 代码,这不应该在关闭LIRC阻塞的情况下发生。

我拥有所有东西的最新版本(Python LIRC 1.2.1),我知道Python LIRC的先前版本存在阻塞参数的错误。我花了两天时间研究和尝试所有可能的事情。这是我发现的一种可能的解决方法,但它受到与此相同的问题的影响:Python LIRC blocking Signal workaround not working

我知道很多代码是不正确的,即全局变量,东西需要在函数中,OWN 每三个小时更新一次,我每小时更新一次,但这是暂时的让它工作。稍后我将对其进行整理并使其面向对象。如果这使某些人难以阅读,请提前道歉。

这就是问题所在。Lirc.nextcode()应该从LIRC队列中提取下一个 IR 代码并将其作为列表添加到codeIR,但如果没有按下任何按钮,并且阻塞关闭,它应该跳过代码。相反,它就像阻塞是打开的一样,并挂起直到按下按钮。然后它仍然不会继续我的主循环。它只是打印NEXT并挂起,直到 I KeyboardInterrupt出来。

我已经添加了我的其余代码,一切正常,但我相信它会帮助你理解我想要完成的事情。

当我KeyboardInterrupt退出时,Traceback总是导致lirc.nextcode(),我会发布错误,但我稍微更改了代码,现在它只追踪到包含lirc.nextcode()的函数。

我花了两天时间试图解决这个问题,我几乎要拔掉我的头发,所以我会采取你们能给我的任何解决方案或解决方法。预先感谢,我非常感谢我能找到的任何帮助。我找到了使用信号模块 AlarmException的解决方法,但是当我从 raw_input() 切换到 lirc.nextcode() 时,它也以相同的方式挂起(即使它在 raw_input() 上设置了一个计时器也没问题)并阻止警报工作正确的。这是链接:Python LIRC blocking Signal workaround not working

0 投票
1 回答
648 浏览

python - Python LIRC 阻止信号解决方法不起作用

我一直在使用Python LIRC函数lirc.nextcode()遇到问题。我关闭了阻塞,如果LIRC队列为空,则允许跳过代码lirc.nextcode() ,方法是使用lirc.init("program", blocking=False)进行初始化并尝试lirc.set_blocking(False, sockid)。两者都不起作用,代码总是挂起,等待按钮按下,当它应该继续时。

我发现这种解决方法对raw_input('prompt')设置了时间限制。因此,即使我的lirc.nextcodde()等待按钮按下,如果没有按下按钮来停用警报,警报也会在 5 秒后响起,并且无论如何都会跳过代码:

然后改变它以满足我的需要:

我想要发生的事情:如果一个按钮被按下并且一个 IR 代码在LIRC队列中,它应该打印被按下的按钮。如果没有按下任何按钮并且LIRC队列为空,它应该打印“提示超时。继续...”和“超时”。

实际发生的情况:如果一个按钮被按下并且 IR 代码在LIRC队列中,它会打印该按钮,但如果没有按下任何按钮并且队列为空,它会挂起,直到我关闭它。
它完全按预期工作,直到我将text = raw_input(prompt)更改为text = lirc.nextcode(),然后它挂在该函数上,直到它关闭并给出此错误:

因此,关闭lirc.nextcode()的阻塞不仅不起作用,而且还会阻止Signal警报代码解决方法继续进行。

这是我关于LIRC阻塞的原始问题的链接“ Python Lirc blocks code even when blocking is off ” ,这就是这个解决方法的用途。我很乐意接受任何一个答案。

提前感谢您的帮助,非常感谢。

0 投票
0 回答
1186 浏览

infrared - 解码长空调ir码

我在 Rpi 中使用 Lirc 软件来记录原始 ir 代码,对其进行分析并将其保存为 conf 文件。我在 Android App 中进一步使用这个 conf 文件来生成原始代码并将其发送到 ir blaster。这在电视或音乐系统的情况下工作得很好。但是对于 AC,在 irrecord 期间,遥控器会发送 AC 的完整信息,包括温度、风扇速度、时钟、吹风等。因此,在录制期间,我必须考虑 AC 遥控器选项的所有组合,以便制作一个 conf 文件。这是非常乏味和低效的方法。

我需要帮助来有效地确定长 AC ir 信号并将其移植到 Android 应用程序以进行进一步控制。

问候, 丽蒂卡

0 投票
1 回答
1888 浏览

c - cgo:在序言中使用 typedef 结构

我正在尝试为 lirc 制作 Go 绑定: https ://github.com/inando/go-lirc

像 lirc_init() 和 lirc_deinit() 这样的简单函数可以正常工作。

对于函数 'lirc_command_init()' 我需要使用结构类型: https ://github.com/inando/lirc/blob/master/lib/lirc_client.h#L334

我首先尝试了这样的事情:

但这给了我这个错误:无法确定 C.lirc_command_init 的名称。
不确定 struct_ 是否应该用于类型?
ctx 可能需要是一个指针,但我总是得到同样的错误。

然后我尝试使用包装器,但这给了我错误未知类型名称'lirc_cmd_ctx'

我在这里做错了什么?如何在 Go 中使用该结构类型?

更新:
不确定这是否相关,但 C.free 也抱怨。

-> 无法确定 C.free 的名称类型

Go 版本:go 版本 go1.4 linux/amd64(Windows 上的 Vagrant)

0 投票
0 回答
656 浏览

java - gcc 编译:未找到 size_t(在 64 位系统上安装 JLirc)

我正在使用 JLirc 在 java 中访问我的遥控器。它使用本机方法通过套接字连接到 lirc。不幸的是,JLirc 的最后一次更新是在 15 年前,因此它不支持 64 位系统。

因此,我求助于 JUDS,它应该能够为我提供另一种方法来创建连接到 lirc 的套接字。

我使用我认为是标准的 C 方法来编译通过 java ( libunixdomainsocket-linux-x86_64.so) 访问的库。我使用创建配置文件autoconf和使用./configure.

如果我现在运行make,我会收到以下错误:

我读到这个问题,包括<stddef.h>会有所帮助。但是,#include <stddef.h>在 .c 源文件中添加它尝试编译的行并没有帮助。

知道我能做些什么来解决这个问题吗?

  • 找到编译 JUDS 并获取我的 .so 文件的方法
  • 找到除 JUDS 之外的另一种方法来连接到 java 中的 linux 套接字
  • 找到除 JLirc 之外的另一种方式通过 java 连接到 lirc
0 投票
2 回答
6149 浏览

raspberry-pi - 如何在树莓派中使用 LIRC 记录来自 AC 遥控器的 ir 信号?

我已经使用树莓派的 LIRC 来记录和使用三星电视遥控器的 IR 信号。录制过程很好。我用这个网站作为参考。但现在我无法用同样的方法记录来自 bluestar AC 的 IR 信号。在 1-3 个点之后(不总是相同的数字),irrecord 退出并显示以下错误消息:

然后我尝试使用 mode2 记录 AC 远程信号并将其路由到文本文件并手动修改 lircd.conf 文件以包含原始代码,如链接所示

如何使用具有 2ms 时间而不是默认 5ms 的 irrecord?

但后来我得到了错误

0 投票
0 回答
78 浏览

javascript - 使用 javascript 解析 lircd.conf

如何从 LIRC 数据库(例如http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V850.lircd.conf)解析 lircd.conf 文件以用于我的javascript项目?

我更喜欢可以在客户端浏览器中运行的 javascript 解析器。