您的位置:首页 > 移动开发 > 微信开发

cc2541 cc2640 接入微信AirSync协议

2015-12-22 13:25 513 查看
手头一款cc2640的穿戴设备要接入微信硬件平台,前期接到任务还是很忐忑的,因为毕竟不熟悉微信这块的东西,所以前期也走了不少弯路,现在已经在cc2640和cc2541上实现了功能,以下是自己在微信接入方面的一点心得:</p><p> 首先微信官方是有demo参考的,但是只有nordic的nrf51的代码和文档,至于TI的暂时还没有找到,论坛里面有个cc2541的demo,不过核心代码都是封装成库提供的,没有什么利用价值,如果是cc2541的开发,前期可以直接使用调试,cc2640就只能呵呵了。没有demo只能自己动手调试了,动手之前先下载安装微信官方的调试appAirSyncDebugger,这样就可以先不管微信服务器端的开发,直接调试蓝牙部分(注意:由于使用安卓手机调试,经常遇到修改了错误之后,debugger依旧提示错误,重开蓝牙,重进app即可)。由于之前一直在用2541和2640在做开发,所以广播和微信服务0xfee7的添加很容易实现了。 广播中添加mac地址,如果为了快速测试可以手动添加mac地址,但是这只能用来测试,实际项目中需要自动获取mac地址,使用下面api获取mac地址:GAPRole_GetParameter(GAPROLE_BD_ADDR,macaddr); 另外,mac地址添加进广播的时候,注意字节序。 广播数据格式示例:
{0x02,   // length of first data structure (2 bytes excluding length byte)GAP_ADTYPE_FLAGS,   // AD Type = FlagsDEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,// service UUID, to notify central devices what services are included// in this peripheral0x05,   // length of second data structure (7 bytes excluding length byte)GAP_ADTYPE_16BIT_MORE,   // list of 16-bit UUID's available, but not complete listLO_UINT16( xxx_SERV_UUID ),        // Alert Service (Proximity Profile)HI_UINT16( xxx_SERV_UUID ),LO_UINT16( WECHAT_SERV_UUID ),  // Buzzer set Service (Proximity / Find Me Profile)HI_UINT16( WECHAT_SERV_UUID ),0x09,GAP_ADTYPE_MANUFACTURER_SPECIFIC,// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*TI Pre-Amble*/0x0D,0x00,/*Device MAC (6 Bytes)*/0,0,0,0,0,0};
添加wechat的service,如下定义(具体步骤可参靠ti工程中的service添加流程):
#define WECHAT_SERV_UUID                0xFEE7#define WECHAT_WRITE_UUID               0xFEC7#define WECHAT_INDICATE_UUID            0xFEC8#define WECHAT_READ_UUID                0xFEC9
广播数据和微信服务添加好后,用debugger可以跑通第一步了,这是个好的开始,然后可以参照腾讯给出的nrf51的demo进行协议移植,在熟悉ble协议基础上,这个过程也不是太难,需要花一些时候了解处理流程,然后添加到2640或者2541sdk里面。需要用到的文件如下:除了这些文件之外 , 还需要自己的wechatservice.c wechatservice.h服务文件,然后就是wechatApp.c文件,wechatApp.c需要自己写,也就是处理微信的收发数据的文件,这个文件就是提取nrf51的demo中微信处理流程的文件。当然写起来容易,移植可能会花一定时间去熟悉微信协议,nrf51的sdk流程之类的,还要对数据进行组包和拆包。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: