2014-09-24 18 views
1

我想「僞造」一個遙控器來做一些家庭自動化並打開我的電視機頂盒。 這不是關於「接收」,而是「傳送」給接收器。Lircd.conf:當按鈕被釋放時,我的遠程發送pre_data沒有密鑰代碼

我想出了相關遙控器的代碼和它的一些作品。 但是,我的電視機頂盒好像通過再次發送預先數據然後停止發送,而沒有實際的密鑰代碼來檢測按鈕按壓的結束(以及多次重複按鈕按壓)。

爲了說明這一點,與模式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個脈衝結束,而不是整個詞的結尾。這對所有的鍵都是一樣的。

正如我所提到的,這似乎是相關的,因爲我無法打開電視盒(連續按兩次電源)或更改通道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

嗯,我想避免這一點,因爲我想它會花費我最後幾周晚上弄清楚LIRC代碼是如何工作以及在哪裏添加此功能,但這裏是補丁: https://github.com/matzrh/lirc/commit/fa7b01e94e7da8b7073865625f7811f284c8a825

它工作正常,但我沒有測試重複之間的短間隔(< 10毫秒),但代碼在那裏,理論上。 我「濫用」remote-> suppress_repeat作爲一個標誌來表明這個重複的預先數據應該被創建,接下來。所以如果這是用於別的東西(我不知道它是什麼)可能會有衝突。 也許對別人有用。 我需要這個來僞造由瑞士Stafag/Leunet提供的電視機頂盒的Ocilion遙控器。 我在前面的數據上增加了一個位,使其爲0x176。如果有人想要完整的lircd。CONF遠程,取得聯繫(它只能在安裝補丁後)

0

顯示

通過 '運行startx'

安裝xmode2(LIRC-X)啓動了圖形環境

apt-get install lirc-x 
xmode2 

如果一切順利,我們可以測試實際的接收硬件。拿一個遙控器並啓動「xmode2」程序(如果你不使用X啓動字符應用程序,「mode2」);按鍵,然後在我的情況下,遠程

一些按鈕我用樹莓派:

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 

由於事先上。

+0

首先:嘗試使用連接到IR接收器的示波器驗證數據(如果可以的話)。前兩個鍵似乎使用完全不同於其他協議的協議。這似乎有點奇怪。不要指望這會自動發生,而是手動分析。您需要了解並閱讀不同的編碼方案。 (修改的)移位編碼意味着零是從脈衝到空間和從空間到脈衝的一個過渡。這意味着較短的數字意味着前一位重複,它翻轉的時間越長。但是,您的代碼似乎是空間編碼(前2個鍵) – user3117071 2015-02-10 19:57:22

+0

編輯:雖然您的音量鍵可能使用空間編碼,但其他編碼器可以使用脈衝寬度爲230us的移位編碼。 – user3117071 2015-02-10 19:59:36

+0

好吧,這是不正確的。它也是移位或空間編碼的,因爲在兩個長時間之間存在奇數個短持續時間,第一個長脈衝可能是標題的一部分。 – user3117071 2015-02-10 20:12:59

相關問題