接着上一篇我们接着研究android红外开发,本篇我们以网上最开源的格力空调编码开始研究,好了废话不多说,开搞!!
1、首先我们先来了解一下格力空调的编码格式 这个网上都有
格力空调遥控器(YB0F2)红外码组成如下,按解码顺序排列
起始码(S)+35位数据码+连接码(C)+32位数据码
各种编码的电平宽度:
数据码由“0”“1”组成:
0的电平宽度为:600us低电平+600us高电平,
1的电平宽度为:600us低电平+1600us高电平
起始码S电平宽度为:9000us低电平+4500us高电平
数据码看下图
大概了解这些乱糟糟的编码之后大家县里都有一个疑问,有个蛋用,别急小编给大家一点点 拿形象点的数字拼接起来
2、数据拼接
(四个部分:起始码+35数据码+连接码+32数据码
分别:1位+35位+1位+32位=69位X2=138个时间)(每位由一个高和一个低组成)
由于这个属于命令编码 在好多地方都能用得到,我们就新建一个类把它拿出来如下: 代码里面注释很清楚了自己看下
package com.gaoyu.smarttools.date;
/**
* Created by ${高宇} on 17/6/3.
* <p>
* <p>
* 下面是空调遥控器编码
* 格力空调遥控器(YB0F2)红外码组成如下,按解码顺序排列
* 起始码(S)+35位数据码+连接码(C)+32位数据码
* 各种编码的电平宽度:
* 数据码由“0”“1”组成:
* 0的电平宽度为:600us低电平+600us高电平,
* 1的电平宽度为:600us低电平+1600us高电平
* 起始码S电平宽度为:9000us低电平+4500us高电平
* 连接码C电平宽度为:600us低电平+20000us高电平
* <p>
* 校验码的形成机制如下:
* 校验码 = [(模式 – 1) + (温度 – 16) + 5 +左右扫风+换气+节能]取二进制后四位,再逆序;
* <p>
* 例如:如果需要设置一下的状态,模式4,30℃,左右扫风,换气关闭,节能关闭,那么校验码为:
* (4 – 1)+(30-16)+5+1+0+0= 23,二进制为10111,取低四位为0111,逆序后为1110
* <p>
* 为了方便编码,在编码时可以正序,解码端再逆序,解码的时候先解码低字节,再解码高字节的位。
* 另外定时数据对最后的校验码的影响没有测试,因为很少会用到这个功能。
*/
p