上一步中获取了遥控器的红外数据,接下来就需要解析了

观察这126组数据,显然72组数据后的数据电平时钟不变,时间也是满的(9637us)。说明该遥控器数据位共72位。
开机位
接下来用控制变量法获取数据解析,首先是开关机位。分别获得 制冷 25度 自动风 摆风 下的开关机码。建议将打印出来的数据导入excel分析比较方便。将前后电平时间相减,差值小于100的认为是系统误差,大于的认为是数据差。很明显第9位和65位数据差值大于1000 。二者应该只有一个位控制开关机,剩下一个数据区别应该为检验和区别,正常人都会把校验和放在最后,所以大胆预测第九位控制开关机 ,65位及附近数据为检验位。

数据格式
上面推算出来了开机位,注意数据格式 大胆猜测 起始信号为4100us的高电平和450us左右的低电平组成 数据信号的第二个电平为0 且时间为450us左右 ,而第一个电平为高电平时间为420us或1550us,对应的应该为数据0 和1 (关于这里的推测,联系上面的开机位,正常人都会把开机设为1,关机设为0),这样大致的数据格式推测出来了,可能有错误,继续用控制变量法获取数据分析,有错再改。
温度控制位
分别采集 开机 制冷 自动风 摆风 前提下 25度和26度的数据,发现有15 16两位 30 31位 以及65位前后不一样,首先可以肯定的是上面的开关机位推断正确,但是仍然看不出来温度变化规律。

25和26对比
大胆一点,干脆把温度调到最低看,特么的,怎么还是那三处不一样。没办法,只能带进去假设演算了。18度和25度第一个区别就是13 15 16 不一样,将数据按上一步推测的换成0或1,可得18度时为0010,25度为1001. 加减一下可以发现:25-18==7==1001-0010 ;这样规律很可能是 temperature - 18 = n - 0010 将26度的数据带入演算,推断成立。该遥控器支持最大温度为32度,哎,四位数最多到31,需要5bit。大胆再猜下12-16 5bit都是控制温度的,32度时为10000. 控制变量将温度设置为32度,发现上述推断成立。
注意28-32位数据和温度有关,但是没看出来具体关联,可能是某类校验,先跳过

18和25度对比
模式控制位
直接将上述模式切换为送风模式,发现只有2-16bit 上数据为00001有不同,特么怎么又跑到温控位了?但是18度时为00010,下面确实有一位没用,可能送风模式比较特殊,直接用温控位代替了。
继续分析其他模式,将模式切换为制热模式,发现这次变的地方太多了,等下再继续分析模式
风速控制位
分别获取 自动模式 24 不扫风下的强中低三种风速

发现55 56两位区别,弱风为01 中为10 强风为11 该遥控器还有一个自动风,应该为00,将00带入之前开机位测试的码型中,结论成立。
摆风控制
同理可得41位控制摆风

风向控制
45位为方向控制位,该位使能后摆风失能,导风板切换方向一次

起始码和地址码
经过上述分析过程,堆积样本码数量足够多了,仔细观察前九位,数据完全一样。第一位格式较特殊,起始码推断应该没问题。再往后八位:01010101,数据完全一样,推断大概率可能为地址码

数显控制位
46-48为数显控制位,000保持当前 111切换状态

超静控制位
62位为超静控制位,1:使能超静模式

定时控制位
多次采集对比发现 11 36-40 57 58都和时间有关联
11位较为明显,控制定时功能是否开启,为1时开启
36-40位控制定时时间,此部分较为特殊,当t<=5h时,该部分值为2t。当t>5 h时,数据为1010+(t-5h)。
57 58两位控制定时状态 ,具体不清楚
该功能用不上,定时时间选择太小,还不如用单片机定时器直接定时方便(逃
模式控制位
前面已经分析一半多的码了,继续分析模式,依次切换模式尝试(自动、送风模式下温度无法控制,分析时排出温度位和温度相关位(12-16,28-32))

50-52位控制模式,自动(000)->制冷(001)->除湿(010)->送风(011)->制热(100).
值得注意的是,此时送风模式下得到的温度值是24(01000),这和之前温度分析不一样???然后我去翻了之前保留的数据,发现温度值是24,而不是之前写的00001???
睡眠控制位
19位为睡眠控制位,为1使能睡眠功能
先睡觉,起来再写,狗命要紧