N900上有个TVB-Gone的程序,但是程序的红外编码往往都是对应的国外的电视,好多国产电视都不支持,
有时候需要遥控空调或者投影之类的,只能自己录入了,大概看了一下,编码比较简单(比硬件那个简单多了,毕竟不需要考虑程序空间的问题)
(上次录过一次,这次又重搞一遍,还是记录一下,以备后用。)
第一步当然得知道红外编码,做了个简单的红外线分析器,网上有开源的,
没有串口,我用了个转USB的小东西,

对应可以输出红外线具体时间的文件,就靠这个文件里面的时间长度来录入编码,如下为截取Channel 2的一段:
------------------------------------------------------------------------
CH 2
:
:212
1
8942
4470
551
1656
548
1658
547
537
550
535
549
535
550
535
549
1656
550
1656
549
1656
550
1656
549
1656
550
1656
549
535
550
535
549
537
548
1656
549
537
550
535
549
535
550
535
549
537
548
537
549
535
548
537
549
535
550
535
551
535
548
537
549
535
550
535
549
535
550
537
549
535
550
535
549
535
550
535
551
535
550
1656
549
535
550
535
549
535
550
537
547
537
548
537
549
535
550
535
549
1656
550
535
551
535
548
537
549
535
550
535
549
535
550
535
549
537
548
1658
549
535
550
535
549
535
550
535
549
537
548
537
549
535
550
535
549
535
550
537
549
535
550
535
549
535
550
535
549
537
548
537
549
535
550
535
549
535
550
537
549
535
550
535
549
535
550
535
549
537
548
537
549
535
550
535
549
535
550
537
547
537
548
537
549
1656
548
537
549
1656
550
535
549
535
550
535
549
537
550
535
549
1656
550
1656
549
1656
550
535
549
1656
550
1656
549
535
550
535
577
:
------------------------------------------------------------------------
从8942开始,上面不用管,每个数字代表时长,两个数字一组,一组一组地看,数字接近的都合并为同一组,构造的结构为
[载波频率, "载波序列", [(时间组1), (时间组2), (时间组3) ... ]]
载波频率需要示波器查看,或者网上查,或者使用红外线常用的38400,载波序列中每一个数字代表一个时间组的序号,从零开始,
以上面我们截获的数据为例,简化一下,可以用四组时间组表示,分别为
(8950, 4450), (550, 1650), (550, 535), (525, 560)
|
序列
|
时间组
|
|
0
|
8950, 4450
|
|
1
|
550, 1650
|
|
2
|
550, 535
|
|
3
|
525, 560
|
该段截获红外代码就变成如下结构的编码
[ 38400, "0112222111111222122222222222222222222212222222212222222212222222222222222222222222222222212122222111211222",
[(8950, 4450), (550, 1650), (550, 535), (525, 560)]]
(此处未用到序列3的时间组,那是给另一段红外编码使用的,可删除)
修改N900的/usr/lib/hildon-desktop/tvbgone.py文件,如下:
。。。
import os, fcntl, struct, time, math
import gobject, cairo, gtk, gconf
import hildon, hildondesktop, osso
GCONFPATH = "/apps/Maemo/budig.de/TVBGone"
# Collection of shutdown codes for various TV models.
TVBGoneCodes = {
"Europe" : [
# 公司空调遥控关(开的编码不一样)
[ 38400, "0112222111111222122222222222222222222212222222212222222212222222222222222222222222222222212122222111211222",
[(8950, 4450), (550, 1650), (550, 535), (525, 560)]],
# 公司投影遥控开/关