1

リモコンを「偽造」して、ホームオートメーションを行い、テレビの STB をオンにしたいと考えています。これは「受け取る」ことではなく、受信者に「送信する」ことです。

関連するリモコンのコードを見つけたところ、うまくいきました。ただし、テレビのセットトップボックスは、キーの実際のコードなしで、事前データを再度送信してから送信を停止することにより、ボタンの押下 (および複数回のボタンの押下) の終了を検出するようです。

これを説明するために、mode2 を使用して、電源を 2 回続けて押すと (ただし、その間にボタンを放すと)、次の一連のパルスとスペースを受け取ります。

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 番目のパルスで終了するように見えることです。これはすべてのキーで同じです。

前述したように、TV ボックスをオンにしたり (電源を 2 回続けて押したり)、チャンネル 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 プロセッサ) を搭載したかなり強力なアーム プロセッサです。どんな助けでも大歓迎です

4

2 に答える 2

0

画面

「startx」を介してグラフィカル環境を開始しました

xmode2 (LIRC-X) をインストールする

apt-get install lirc-x
xmode2

すべてがうまくいったら、実際の受信ハードウェアをテストできます。リモコンを取り、「xmode2」プログラムを開始します (X を使用しない場合は、キャラクター アプリケーション「mode2」を開始します)。次に、リモコンのいくつかのボタンを押します

私の場合、ラズベリー pi を使用します。

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

IR レシーバーが実際に受信しているものを確認し、視覚化します。

lirc ファイルには、IR コマンドの 8 進コード/プロトコルが含まれています。

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

よろしくお願いします。

于 2015-02-09T17:12:52.573 に答える
0

先週の夜、lirc コードがどのように機能し、この機能をどこに追加するかを理解するのに費用がかかると考えたので、これを避けたかったのですが、ここにパッチがあります: https://github.com/matzrh/lirc/コミット/fa7b01e94e7da8b7073865625f7811f284c8a825

正常に動作しますが、リピート間の短いギャップ (<10ms) についてはテストしませんでしたが、コードは理論上存在します。次に、remote->suppress_repeat をフラグとして "乱用" して、事前データのこの繰り返しを行う必要があることを示しました。したがって、これが別の目的で使用されている場合 (何のために使用されているかはわかりません)、競合が発生する可能性があります。たぶん他の誰かに役立つでしょう。これは、スイスの Stafag/Leunet から提供された TV セットトップ ボックス用の Ocilion リモコンを偽造するために必要でした。上記の事前データにビットを追加して、0x176 にしました。リモート用の完全な lircd.conf が必要な場合は、連絡してください (パッチのインストール後にのみ機能します)。

于 2014-09-28T12:32:20.483 に答える