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

来源:互联网 发布:知乎市值多少 编辑:程序博客网 时间:2024/06/07 10:35

令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 codesend 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
原创粉丝点击