以空間裡頭前做的一個實驗,現在搬家,把他也挪過來了~
-------------2013.6.18更新------------
用邏輯分析儀捕捉了幾個功能的編碼,記錄下來:
擺風:B2 6B E0 強勁:B5 F5 A2 //位址碼為B5,再發一次為關閉強勁
高風:B2 3F 00 中風:B2 5F 00 低風:B2 9F 00 自動:B2 BF 00
另:老家的空調是格力的,拿格力的遙控器來試了下,編碼比較複雜,很長一串,還不清楚有啥規律,先找找網上有沒有現成的。而且格力的編碼還有校驗碼,但願它隻是簡單的“和校驗”或者“異或校驗”什麼的吧,不過好的是沒有加密,因為發送兩次同樣的操作,捕獲的資料是一樣的,可以copy之後發送,隻是沒那麼靈活了。
------------------------------------
(才發現...把源碼忘了,補上)
-----------------------------
其實程式去年就做完了,但一直沒有給它做最後的收尾工作,比如打包、注釋以及通信協定神馬的。
現在也是簡略的收收尾,打了包、還算比較詳細的注釋,不過通信協定嘛,基本沒有,就是把紅外需要發送的指令發送給開發闆,開發闆隻起到調制紅外的作用,不對指令進行解析; 也做了個簡易的android用戶端,由于太過簡易,就不發上來了。自己另外做用戶端也非常友善,隻需要将3個位元組的紅外指令通過TCP協定發送給開發闆就OK
-------------------------------------
整個程式都挺簡陋,主要是夏天太熱急着要用,用上就不想改了。。。。歡迎廣大網友優化,優化了記得發我一份啊。。。。
driver代碼:本驅動是linux下的,linux核心版本為2.6.32.2,用到了Timer0和Timer1,按道理一個timer應該也夠了的,沒多去折騰它了
把它編譯為核心驅動子產品就能使用, 同步、互斥神馬的沒測試,也沒這方面的邏輯,就别亂折騰了。
application代碼:同樣linux下的,沒什麼内容,主要是socket的監聽、收發,是以你運作它之前需要確定你的linux核心已經移植好了網卡驅動和安裝了上面的那個驅動(我記得是有異步問題沒處理的,用之前最好看看代碼
)
源碼:
http://download.csdn.net/detail/u013699922/7006459
--------------------------------------
順便附上美的空調紅外的一些常用編碼:
關空調:B2 7B E0 擺風:B2 6B E0 17度:B2 1F 0818度:B2 1F 1819度:B2 1F 3820度:B2 1F 2821度:B2 1F 6822度:B2 1F 78
23度:B2 1F 58 24度:B2 1F 4825度:B2 1F C826度:B2 1F D827度:B2 1F 9828度:B2 1F 8829度:B2 1F A830度:B2 1F B8
沒有“開空調”指令,因為選擇多少度的時候就自然打開了,從編碼上看得出來,都是B2開頭,溫度也都是B2 1F開頭的...
-------------------------------
最後來張android用戶端的圖