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流程之类的,还要对数据进行组包和拆包。
相关文章推荐
- 微信生成二维码
- 分享Android微信红包插件
- java接入微信公众平台
- 仿微信图片选择及多张图片上传
- 微信证书问题
- 【学习】Android 高仿微信图片选择器
- 仿微信雷达扫描
- 微信开放平台开发(2) 微信登录
- 微信开放平台开发(1) 语义理解
- ShareSDK 微信及其朋友圈集成步骤
- java 复制 删除 改文件 后缀名小程序
- 微信生态圈盈利模式分析
- android中service的总结,特别是关于如何设置类似qq,微信防止被清除
- Android 仿微信支付密码输入框
- 微信公众号antian365sec
- iOS之微信支付开发
- Android应用实现微信登录与分享
- 微信支付测试OK。
- 微信相关 -- 可以通过调用下面的方法 请求对应的url 获取微信服务器返回的json数据
- PHP微信SDK——Zebra-Wechat