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

时间:2014-09-24 21:56:59

标签: linux lirc

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

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

为了说明这一点,使用mode2,当我连续按下电源两次(但释放其间的按钮)时,我会收到以下一系列脉冲和空格:

277 682 597 703 256 362 277 362 597 703 256 362 597 362 256 703 597 362 277 682 597 362 277 682 619 16275
256 703 597 703 256 362 277 362 597 682 277 362 597 362 256 703 597 362 256 703 597 362 277 682 597 16275
277 682 597 703 277 362 256 362 619 682 256 362 597 16957
256 703 597 703 256 362 256 362 597 703 256 362 619 362 256 703 597 362 256 703 597 362 256 703 597 16275
256 703 597 703 256 362 256 362 597 703 277 362 597 362 256 703 597 362 256 703 597 362 256 703 597 16275
277 703 597 682 277 362 256 362 597 703 256 362 597 362 277 682 619 362 256 703 597 362 256 703 597 16275
256 703 597 703 256 362 277 362 597 682 277 362 597 16957

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

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

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

我该如何实现? 有什么想法吗?

我的lirc文件如下所示:

begin remote

    name leunet
    bits    10
    flags SHIFT_ENC|CONST_LENGTH
    eps 30
    aeps 100

    header 343 343
    one 343 343
    zero    343 343
    gap 118000
#   min_repeat  2
    pre_data_bits   8
    pre_data    0xbb

        begin codes
            power   0x092
            key_1   0x091
......
        end codes
end remote

我尝试以与预数据相同的方式尝试定义“发布数据”,但由于长距离而且“后期数据”不应该是任何重复的一部分,因此无法正常工作。

我不想修改lirc并重新编译,因为这总是对更新,系统更改等大惊小怪,说实话,我想避免深入研究它。

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

2 个答案:

答案 0 :(得分:0)

嗯,我想避免这种情况,因为我认为在上周的几个晚上我会花费很多时间来弄清楚lirc代码是如何工作的以及在哪里添加这个功能,但这是补丁: https://github.com/matzrh/lirc/commit/fa7b01e94e7da8b7073865625f7811f284c8a825

它工作正常,但我没有测试重复之间的短间隙(<10ms),但理论上代码就在那里。 我被滥用了#34; remote-&gt; suppress_repeat作为一个标志,表明接下来应该重复预先数据。因此,如果将其用于其他内容(我不知道它的用途),则可能存在冲突。 也许对其他人有用。 我需要这个来伪造由瑞士Stafag / Leunet提供的电视机顶盒的Ocilion遥控器。 我在上面的前数据中添加了一个额外的位,使其成为0x176。如果有人想要远程的完整lircd.conf,请联系(它只能在安装补丁后才能工作)

答案 1 :(得分:0)

DISPLAY

通过'startx'

启动图形环境

安装xmode2(LIRC-X)

apt-get install lirc-x
xmode2

如果一切顺利,我们可以测试实际的接收硬件。拿一个遥控器启动“xmode2”程序(如果不使用X启动字符应用程序,“mode2”);然后按遥控器上的一些按钮

在我的情况下,我使用raspberry pi:

xmode2 –d /dev/lirc0 –t 1 # [msec]

要确定您的红外接收器真正接收的是什么,以便将其可视化。

您的lirc文件包含IR命令的八进制代码/协议:

begin remote

name leunet
bits    10
flags SHIFT_ENC|CONST_LENGTH
eps 30
aeps 100

header 343 343
one 343 343
zero    343 343
gap 118000
pre_data_bits   8
pre_data    0xbb

    begin codes
        power   0x092
        key_1   0x091

...

你是怎么做到的?

在我的情况下,它是原始的,通过命令

irrecord -d /dev/lirc0 ./out.conf

这是我的lirc.conf文件

  begin raw_codes

      name KEY_VOLUMEUP
         4529    4451     606    1643     600    1651
          594    1645     598     526     601     524
          603     521     597     527     600     525
          602    1650     594    1646     598    1650
          605     519     597     527     599     525
          603     521     613     512     599    1648
          609    1638     602    1643     600     526
          603     521     596     528     598     526
          601     523     604     521     596     527
          599     526     603    1644     600    1651
          593    1648     605    1642     603    1643
          601   46795    4533    4454     594    1647
          597    1648     607    1647     596     522
          605     519     598     527     600     524
          602     522     597    1650     603    1648
          597    1644     597     527     603     521
          606     519     597     527     600     524
          604    1648     594    1648     597    1649
          606     518     598     527     600     524
          604     525     592     528     599     525
          602     523     626     498     597    1650
          605    1638     605    1650     595    1645
          597    1648     607

      name KEY_VOLUMEDOWN
         4537    4455     599    1639     605    1649
          595    1645     598     527     602     522
          603     522     596     528     599     525
          600    1652     593    1648     594    1651
          604     522     606     518     598     525
          602     523     605     526     588    1653
          603    1641     624     501     605    1642
          601     523     611     514     597     526
          601     523     604     521     596     529
          599    1645     598     550     586    1648
          588    1649     605    1641     602    1645
          599   46798    4540    4439     597    1650
          604    1643     600    1652     594     525
          601     523     605     534     603     507
          600     523     603    1643     602    1652
          591    1649     606     519     597     526
          602     524     603     521     595     529
          599    1653     591    1649     606     520
          595    1651     604     520     596     528
          600     525     607     516     605     520
          597     526     600    1647     598     526
          601    1647     596    1655     600    1641
          604    1642     600

      name KEY_OK
          478     250     226     214     230     543
          233     209     225     548     228     713
          228     212     233     209     225     217
          226     217     229     544     232     375
          236     538     226     382     229     379
          230     714     227     209     226

      name KEY_INFO
          473     248     228     214     230     543
          233     209     225     552     234     701
          229     213     232     211     224     217
          228     214     230     544     232     374
          236     540     225     216     229     214
          230     714     228     705     226

      name KEY_MENU
          472     253     234     208     226     547
          229     214     230     546     252     683
          226     216     229     214     230     211
          234     208     226     549     227     379
          231     543     232     376     235     373
          226     401     199     223     232

      name KEY_CHANNELDOWN
          475     251     204     237     207     567
          209     234     200     573     203     735
          205     237     207     236     200     241
          203     239     206     569     207     399
          200     575     201     240     205     569
          206     235     199     410     201

      name KEY_CHANNELUP
          480     246     230     212     232     541
          225     216     229     546     229     710
          231     210     234     208     227     218
          226     214     232     539     236     373
          227     547     228     214     230     544
          232     211     224     216     229

  end raw_codes

事先感谢。