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 的所有重要的地方都熟悉过了,在看上微信的程序才很容易,但是后面的封包、认证的程序就理解起来很困难,因为根本没有接触过。
|