极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10214|回复: 0

基于红外的库的扩充

[复制链接]
发表于 2013-11-11 17:32:09 | 显示全部楼层 |阅读模式
由于实验用的遥控器是美的空调的遥控器使用的是R51D/C红外协议发送48位值且发送两次编译的编码方案是取第二次发送为基准对发送的脉冲进行编码。
以下是对发送的脉冲进行的编码程序
long IRrecv::decodeMIDEA(decode_results *results){
        unsigned long long data = 0;
        int offset = 101;

    if (!MATCH_MARK(results->rawbuf[offset], MIDEA_HDR_MARK)) {
        return ERR;
    }
    offset++;
    if (!MATCH_MARK(results->rawbuf[offset], MIDEA_HDR_SPACE)) {
        return ERR;
    }
    offset++;

    // decode address
    for (int i = 0; i < 48; i++) {
         if (!MATCH_MARK(results->rawbuf[offset], MIDEA_BIT_MARK)) {
            return ERR;
        }
        offset++;
       if (MATCH_SPACE(results->rawbuf[offset],MIDEA_ONE_SPACE)) {
            data = (data << 1) | 1;
        } else if (MATCH_SPACE(results->rawbuf[offset],MIDEA_ZERO_SPACE)) {
            data <<= 1;
        } else {
            return ERR;
        }
        offset++;
    }
    results->value = (unsigned long)data;
    results->MIDEAAddress = (unsigned int)(data >> 32);
    results->decode_type = MIDEA;
    results->bits = MIDEA_BITS;
    return DECODED;

}
一下是添加了美的类型的例程


一下是得到的结果

发送的是   FFFFFFFFFFFF

首先是得到的不识别的类型但是得到的脉冲的数量是对的但是编码的只是错的类型也是错的。再下面会得到正确的类型和编码的值但是无法得到正确的脉冲数量且会一直的重复的发送这样的结果求大神们看看看这是怎么回事。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 22:59 , Processed in 0.044993 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表