LIRC支持按键重复发送REPEAT按键重复码的方法

令LIRC库支持repeat的识别、接收

令LIRC库支持发送重复码的方法是:在LIRC的配置文件中记录重复码的相关数据(repeat的高低电平持续时间),让LIRC库能够识别重复码。

需要发送重复码的前提是能够接收重复码(在/etc/lirc/lircd.conf文件中包含对应的数据)

/etc/lirc/lircd.conf的头部信息

头部信息保存了红外协议的协议部分的数据,demo如下:(注意:各个遥控器学习完成后,得到的头部数据不一定相同,包括各种字段可能不相同,如部分遥控器会有toggle_bit_mask字段而部分没有)

begin remote
  name  factory_remote
  bits           16
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100
  header       9000  4500
  one           507  1940
  zero          507   646
  ptrail        507
  repeat        9100 2000
  pre_data_bits   16
  pre_data       0x1109
  gap          108000
  toggle_bit_mask 0x0
  frequency    38000
  duty_cycle   33

      begin codes
          codes ...
      end codes

end remote

当红外学习结束后没有学习到重复码协议的解决办法

通过LIRC学习红外协议后,得到的文件中可能没有包含重复码数据,即/etc/lirc/lircd.conf文件的前几十行的协议数据中没有包含repeat 9100 2050等类似的字段,即为没有成功学习到红外协议的重复码部分,需要手动对这个文件做一点修改使之支持重复码。

将重复码数据增加到/etc/lirc/lircd.conf中

  1. 根据自己的协议的资料,查看其重复码的数据格式,将其转换为电平时间,并根据文件里面已有的协议数据进行误差调整;
  2. 将得到的电平时间按照格式repeat 高电平时间 低电平时间的格式写入到文件里面zero字段之后(如果你的文件有ptrail字段,则写到该字段之后);
  3. 写入格式为:另起一行,空两格,写字段(即repeat),两个Tab,写电平时间
  4. 完成,sudo /etc/init.d/lirc restart; irw按住遥控器按键进行repeat测试。

使用irsend send_start可以实现重复发送按键

irsend send_start remote_name KEY_NAME
配置LIRC支持新的红外遥控器通常包含以下几个步骤: 1. **下载红外头**: 首先,你需要一个支持红外信号接收的设备,通常是USB红外接收器或集成在主板上的红外模块。将它连接到电脑上。 2. **检测硬件**: 使用`lirc-hwinfo`工具检查你的红外设备是否被识别。如果看到相应的设备,说明接线正常。 3. **获取遥控器的数据**: 下载对应型号遥控器的原始数据文件(.lrn文件)。这可以在LIRC社区的官方仓库里找到,或者在网上搜索该遥控器的制造商提供的固件。 4. **创建配置文件**: 使用`lircgen`工具生成一个新的配置文件。提供红外接收器的设备名和你刚下载的遥控器数据文件路径。例如: ``` lircgen -d /dev/lirc0 <remote>.lrn > /etc/lirc/lircd.conf ``` 5. **编辑配置文件**: 手动编辑配置文件`/etc/lirc/lircd.conf`,确保设置正确,尤其是按键映射部分。 6. **测试配置**: 使用`lircd`服务启动并验证配置,可以使用`lircd --listen`命令监听红外信号,然后用实际遥控器进行测试,看能否正确识别。 7. **启用服务**: 启动lircd服务,通常使用`sudo service lircd start`。之后可以在终端输入`irrecord`记录特定的动作,以便自动生成相应的配置。 8. **配置应用**: 最后,在你想控制的应用程序(如多媒体播放器),配置使用LIRC作为遥控器驱动。 记得每个步骤可能会因系统而异,上述步骤仅供参考。如果有疑问,建议查阅具体的文档或在线教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值