cc2541 cc2640 接入微信AirSync协议

手头一款cc2640的穿戴设备要接入微信硬件平台,前期接到任务还是很忐忑的,因为毕竟不熟悉微信这块的东西,所以前期也走了不少弯路,现在已经在cc2640和cc2541上实现了功能,以下是自己在微信接入方面的一点心得:</p><p>            首先微信官方是有demo参考的,但是只有nordic的nrf51的代码和文档,至于TI的暂时还没有找到,论坛里面有个cc2541的demo,不过核心代码都是封装成库提供的,没有什么利用价值,如果是cc2541的开发,前期可以直接使用调试,cc2640就只能呵呵了。没有demo只能自己动手调试了,动手之前先下载安装微信官方的调试app  AirSyncDebugger,这样就可以先不管微信服务器端的开发,直接调试蓝牙部分(注意:由于使用安卓手机调试,经常遇到修改了错误之后,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 = Flags
  DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,

  // service UUID, to notify central devices what services are included
  // in this peripheral
  0x05,   // length of second data structure (7 bytes excluding length byte)
  GAP_ADTYPE_16BIT_MORE,   // list of 16-bit UUID's available, but not complete list
  LO_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流程之类的,还要对数据进行组包和拆包。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路人 假

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值