CC2541 上微信与AirSync的验证服务与特征值



在做 CC2541 上微信的时候,最好配合 AirSyncDebugger 软件使用,这个软件只有安卓版本,下载地址:http://iot.weixin.qq.com/download.html;所有的相关资料都可以在这里下载,里面有个 Demo 程序,是基于 Nordic nRF51822 平台的。

在过 AirSyncDebugger 验证的时候,第一二步前面有说,这里说第三步。第三步主要是验证服务和特征值。wechatIOTAttrTbl[] 程序如下所示:

static gattAttribute_t wechatIOTAttrTbl[] =  
{  
    // wechatIOT Service  
    {  
        { ATT_BT_UUID_SIZE, primaryServiceUUID } ,  /* type */  
        GATT_PERMIT_READ ,                          /* permissions */  
        0 ,                                         /* handle */  
        (uint8 *)&wechatService                     /* pValue */  
    } ,  
    //////////////////////////////////////////////  
    // Indicate  
    //////////////////////////////////////////////  
    // 1. Characteristic Declaration  
    {  
        { ATT_BT_UUID_SIZE, characterUUID },  
        GATT_PERMIT_READ,  
        0,  
        &wechatIndicateProps  
    },  
    // 2. Characteristic Value  
    {  
        { ATT_BT_UUID_SIZE, wechatIndicateUUID },  
        0, //return READ_NOT_PERMITTED  
        0,  
        &wechatIndicate  
    },  
    // 3.Characteristic Configuration  
    {  
        { ATT_BT_UUID_SIZE, clientCharCfgUUID },  
        GATT_PERMIT_READ | GATT_PERMIT_WRITE,  
        0,  
        (uint8 *)&wechatIndicateConfig  
    },  
    //////////////////////////////////////////////  
    // Write  
    //////////////////////////////////////////////  
    // 4.Characteristic Declaration  
    {  
        { ATT_BT_UUID_SIZE, characterUUID },  
        GATT_PERMIT_READ,  
        0,  
        &wechatWriteProps  
    },  
    // 5.Characteristic Value  
    {  
        { ATT_BT_UUID_SIZE, wechatWriteUUID },  
        GATT_PERMIT_READ | GATT_PERMIT_WRITE,  
        0,  
        &wechatWrite[0]  
    },  
    //////////////////////////////////////////////  
    // Read  
    //////////////////////////////////////////////  
    // 6.Characteristic Declaration  
    {  
        { ATT_BT_UUID_SIZE, characterUUID },  
        GATT_PERMIT_READ,  
        0,  
        &wecharReadProps  
    },  
    // 7.Characteristic Value  
    {  
        { ATT_BT_UUID_SIZE, wecharReadUUID },  
        GATT_PERMIT_READ ,  
        0 ,  
        &ownAddress[0]  
    } ,  

} ;  


这里是 BLE 设备与 微信 连接的关键部分,只有这里对了,才能正确的连接和数据交换。当然还有写其他的地方,都不是重点,就不再这里写了。

这一块如果不熟悉的话理解起来还是比较麻烦的,我也是先做了一年多的蓝牙,把 CCC2541 的所有重要的地方都熟悉过了,在看上微信的程序才很容易,但是后面的封包、认证的程序就理解起来很困难,因为根本没有接触过。

发布了38 篇原创文章 · 获赞 10 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/winux123/article/details/52244338