可穿戴设备(CC2541)上微信(2)

来源:互联网 发布:sql验证身份证号码 编辑:程序博客网 时间:2024/05/29 04:08

还好之前玩过一段时间的微信精简协议,起码广播和连接这里有点概念了,还好之前有人做过完整的上微信程序,现在可以直接拿过来学习,要不然就真得撸死了。。。虽然之前的精简协议也是别人做完的我来学。。。

ps:有人带有人教真好。。。有妈的孩子像块宝得意。。。遇到个好的主管真是最幸运的事


微信精简协议规定:

设备需要广播包带上微信的service,并在manufature data里带上mac地址。

微信Service uuid:0xFEE7

manufature specific data:需以MAC地址(6字节)结尾。并且manufaturespecific data长度需大于等于8字节(最前两个字节为company id,没有的话随便填)。

微信service下面需包含一个读特征值,uuid为:0xFEC9,内容为6字节MAC地址(ios系统其他软件连上设备之后,微信会去读该特征值,以确定设备MAC地址)。


精简协议和完整协议是一样的。

adverData 和 scanResponseData 如下:

// GAP Profile - Name attribute for SCAN RSP datastatic uint8 scanResponseData[]={    0x0E,   // length of this data    GAP_ADTYPE_LOCAL_NAME_COMPLETE,                                 //0X09    'W',    'P',    'I',    'A',    'T',    'U',    '_',    'W',    'e',    'c',    'h',    'a',    't',      0x05,   // length of this data    GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,                           //0X12    //MIN    LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),   // 100ms    HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),    //MAX    LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),   // 1s    HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),        0x02,   // length of this data    //TX Power Level    GAP_ADTYPE_POWER_LEVEL,                                         //0x0A    0       // 0dBm};#define ADVERT_MAC_ADDR         11uint8 advertData[]={        // Flags; this sets the device to use limited discoverable    // mode (advertises for 30 seconds at a time) instead of general    // discoverable mode (advertises indefinitely)    0x02,   // length of this data    GAP_ADTYPE_FLAGS,                                               //0x01    DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,    // service UUID, to notify central devices what services are included    // in this peripheral    0x03,   // length of this data    //some of the UUID's, but not all    GAP_ADTYPE_16BIT_MORE,                                          //0x02    LO_UINT16( WECHAT_SERV_UUID ),    HI_UINT16( WECHAT_SERV_UUID ),    0x09, // length of this data (9 Bytes )    GAP_ADTYPE_MANUFACTURER_SPECIFIC,                               //0xFF    /*TI Pre-Amble*/    0x0D,    0x00,    /*Device MAC (6 Bytes)*/    0,0,0,0,0,0};

微信协议要在广播包里加 MAC 地址,所以要在后面加一个度 MAC 地址的程序。

注:微信精简协议微信已经不主推了,所以也不要做了,AirSync 协议还是很流行的

0 0