我想“伪造”一个遥控器来做一些家庭自动化并打开我的电视机顶盒。 这不是关于“接收”而是“发送”给接收者。
我找到了相关遥控器的代码,它有点工作。 然而,我的电视机顶盒似乎通过再次发送预数据然后停止传输来检测按钮按下的结束(以及多次重复按钮按下),而没有密钥的实际代码。
为了说明这一点,使用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处理器)的相当强大的手臂处理器。 任何帮助表示赞赏
答案 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
事先感谢。