标签: lirc

Cron启动脚本仅在一天中的某些时间

所以我有一系列脚本,用于控制我的接收器和电视电源在某些事件,如启动,屏幕保护和远程控制.其中一个是在登录期间执行的,但事情可能是我不希望它在机器计划启动时运行脚本.我有逻辑在执行启动应用程序期间如果blanked = 0则忽略事件,因此它不会在启动或关闭期间发送ir.我怎样才能通过使用cron来实现这一目标?我选择cron是因为这些事件发生在启动应用程序之前.Cron真棒,但据我所知,我只能在开机时或按计划运行,而不是两者兼而有之.我需要编写时间变量的脚本,但我不确定如何.

syson.sh(在登录期间调用为启动应用程序和屏幕状态更改)

#!/bin/sh
cd /home/gilson585/
blanked=`cat blanked`
if [ $blanked -eq 0 ] ; then
    blanked=1;echo $blanked > blanked
else
    irsend SEND_ONCE VR4085DF KEY_POWER;irsend SEND_ONCE Kenwood_RC-R0813 power;blanked=0;echo $blanked > blanked
    sleep 1
    irsend SEND_ONCE Kenwood_RC-R0813 cd/dvd
fi
Run Code Online (Sandbox Code Playgroud)

sysoff.sh(在关机期间调用,作为lirc init.d脚本和屏幕状态更改的一部分)

#!/bin/sh
cd /home/gilson585/
blanked=`cat blanked`
if [ $blanked -eq 0 ] ; then
    irsend SEND_ONCE Kenwood_RC-R0813 power;irsend SEND_ONCE VR4085DF KEY_POWER;blanked=1;echo $blanked > blanked
fi
Run Code Online (Sandbox Code Playgroud)

xscreensaver.sh(屏幕保护程序看门狗,在登录时调用)

#!/bin/bash
cd /home/gilson585/
xscreensaver-command -watch|
while read STATUS; do
  case "$STATUS" in
    BLANK*)
      /home/gilson585/sysoff.sh;blanked=1;echo …
Run Code Online (Sandbox Code Playgroud)

boot cron time lirc

10
推荐指数
1
解决办法
307
查看次数

用android发送64位红外信号

使用树莓派3和红外线接收器.在一个名为LIRC的库的帮助下,我记录了我的android盒遥控器的信号.

begin remote

    name  MyRemote
    driver devinput
    bits           64
    eps            30
    aeps          100

    one             0     0
    zero            0     0
    pre_data_bits   64
    pre_data       0x0
    gap          509
    toggle_bit_mask 0x0
    frequency    38000

    begin codes
        KEY_1                    0x116B000001000268
        KEY_2                    0x1169000001000267
        KEY_3                    0x116800000100026E
        KEY_4                    0x116E00000100025C
        KEY_5                    0x116C000001000263
        KEY_6                    0x116800000100024E
        KEY_7                    0x115D000001000268
        KEY_8                    0x116E000001000263
        KEY_9                    0x116B000001000267
        KEY_0                    0x116F000001000265
        KEY_DOWN                 0x0360000001000076
        KEY_LEFT                 0x1167000001000264
        KEY_UP                   0x117800000100025E
        KEY_RIGHT                0x1169000001000266
        KEY_BACK                 0x1170000001000262
        KEY_ENTER                0x1167000001000268
    end codes

end remote
Run Code Online (Sandbox Code Playgroud)

问题是我找不到一个可以帮助我编写代码来从我的Note3发送IR信号的库.

android infrared lirc

9
推荐指数
1
解决办法
459
查看次数

LIRC irsend:无法连接到socket irsend:没有这样的文件或目录

我正在尝试配置LIRC以使用我的Raspberry 2B和我使用晶体管和IR发射器构建的电路,如本教程中所述

安装LIRC后,我按照所有步骤操作,并在/ etc/modules中添加了这两行

lirc_dev
lirc_rpi gpio_out_pin=36
Run Code Online (Sandbox Code Playgroud)

然后我在/etc/lirc/hardware.conf中输入了这个

LIRCD_ARGS="--uinput"
LOAD_MODULES=true
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"
LIRCD_CONF=""
LIRCMD_CONF=""
Run Code Online (Sandbox Code Playgroud)

重新启动后,我将三星遥控器(BN59-00516A)的配置添加到/etc/lirc/lircd.conf

然后我再次重新启动LIRC,但是当我运行命令发送IR频率时

irsend SEND_ONCE Samsung_BN59-00865A KEY_POWER
Run Code Online (Sandbox Code Playgroud)

它抱怨以下错误:

irsend:无法连接到套接字

irsend:没有这样的文件或目录

我猜这是我的设备套接字的问题,因为在我设置的hardware.conf文件中

DEVICE = "/dev/lirc0"
Run Code Online (Sandbox Code Playgroud)

(只是因为教程说明了),但lirc0文件不在文件夹中.我找不到与此问题相关的任何其他问题,谷歌也没有帮助我.有人对此有任何暗示吗?

lirc raspberry-pi raspberry-pi2

5
推荐指数
1
解决办法
6174
查看次数

LIRC部分读取8个字节

我尝试使用我的Raspberry Pi 3和最新的Raspbian创建我自己的通用遥控器.在构建了小接收器和发射器(我遵循的教程)并将所有内容连接起来后,我在尝试接收IR时收到了此消息.

pi@raspberrypi:~ $ sudo modprobe lirc_rpi
pi@raspberrypi:~ $ sudo kill $(pidof lircd)
pi@raspberrypi:~ $ mode2 -d /dev/lirc0
Using driver devinput on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
Partial read 8 bytes on /dev/lirc0pi@raspberrypi:~ $
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

debian-based lirc raspberry-pi3

4
推荐指数
1
解决办法
2923
查看次数

使用LIRC为Raspberry PI(RPi)设置IR远程控制

经过大量搜索之后,我对如何为RPi项目设置IR远程控制方面的冲突信息感到惊讶和沮丧。我以为这很容易,但是设置Linux InfraRed Control(LIRC)长期以来一直存在问题

但是随着Raspbian的Buster版本的发布,2019年6月发生了许多变化,使其中的许多教程毫无用处。许多教程都创建了hardware.conf文件,但是LIRC不需要也不需要它,并且lirc-rpi模块已被gpio-ir模块替换。

那么,如何使用Raspbian(Buster)在RPi上设置LIRC?

python lirc raspberry-pi

3
推荐指数
1
解决办法
1992
查看次数

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

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

我按如下方式运行irrecord:

sudo /etc/init.d/lirc stop
irrecord -d /dev/lirc0 heatpump
Run Code Online (Sandbox Code Playgroud)

我得到了关于推按钮等的常见琐事,并且正确地这样做.

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

irrecord: could not find gap.
irrecord: gap not found, can't continue
Run Code Online (Sandbox Code Playgroud)

现在,我在其他地方发现采样率可能是错误的,并使用xmode2查看波形 - 我已经完成了.我很确定如果能够更快地获取irrecord,我会有更多的运气,就像xmode2一样.

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

以下是使用xmode2的结果 - 您可以看到5ms样本无法真正产生信号的正面或反面,但2ms样本可以.

5ms样本http://jnawk.net.nz/5ms.png 5ms样本(默认)

2ms样本http://jnawk.net.nz/2ms.png 2ms样本

lirc raspberry-pi

2
推荐指数
1
解决办法
1万
查看次数

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

typedef struct {
    char packet[PACKET_SIZE + 1];
    char buffer[PACKET_SIZE + 1];
    char reply[PACKET_SIZE + 1]; 
    int head;
    int reply_to_stdout;
    char* next;
} lirc_cmd_ctx;
Run Code Online (Sandbox Code Playgroud)

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

func lircCommandInit(format string, v ...interface{}) (todoctx string, err error) {
    var ctx C.struct_lirc_cmd_ctx
    cmd := C.CString(fmt.Sprintf(format, v...))
    ok, err := C.lirc_command_init(ctx, cmd)
    fmt.Println(ok, err)
    return
}
Run Code Online (Sandbox Code Playgroud)

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

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

// #cgo LDFLAGS: -llirc_client
// …
Run Code Online (Sandbox Code Playgroud)

c go lirc

1
推荐指数
1
解决办法
1789
查看次数