我想「僞造」一個遙控器來做一些家庭自動化並打開我的電視機頂盒。 這不是關於「接收」,而是「傳送」給接收器。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處理器)功能強大的手臂處理器。 任何幫助表示讚賞
首先:嘗試使用連接到IR接收器的示波器驗證數據(如果可以的話)。前兩個鍵似乎使用完全不同於其他協議的協議。這似乎有點奇怪。不要指望這會自動發生,而是手動分析。您需要了解並閱讀不同的編碼方案。 (修改的)移位編碼意味着零是從脈衝到空間和從空間到脈衝的一個過渡。這意味着較短的數字意味着前一位重複,它翻轉的時間越長。但是,您的代碼似乎是空間編碼(前2個鍵) – user3117071 2015-02-10 19:57:22
編輯:雖然您的音量鍵可能使用空間編碼,但其他編碼器可以使用脈衝寬度爲230us的移位編碼。 – user3117071 2015-02-10 19:59:36
好吧,這是不正確的。它也是移位或空間編碼的,因爲在兩個長時間之間存在奇數個短持續時間,第一個長脈衝可能是標題的一部分。 – user3117071 2015-02-10 20:12:59