本帖最后由 gaoyang9992006 于 2016-2-24 15:12 编辑
1、微信的基本架构(节选自微信官方协议文档)
厂商服务器和外设,由厂商开发完成。 微信会提供服务器的接口以对接厂商的服务器,会提供手机的接口(如本文规定的蓝牙协议)以对接厂商的外设。 主要功能该协议打通了设备和厂商服务器之间的数据链路,也就是支持将设备上的数据发送到厂商的服务器上,也支持将厂商的数据发送到设备。
厂商的数据对于微信来说,是黑盒,微信不对设备数据做分析。
该协议也打通了设备和微信服务器之间的数据链路。
设备和微信服务器之间的数据格式由微信规定,例如登录,新消息通知等。
2、微信蓝牙一般是基于串口的,所以只跟串口底层相关,也就是只需要将串口发送和接收两个函数填充到协议栈对外接口函数就行了。
先把微信SDK包加载在我们自己的项目中,如下我的项目添加到了interactive目录,4个c文件和4个h文件。
整个移植过程我们只需要改动proto.c文件里边5个接口函数。
3、微信传输的数据包结构
4、先把串口准备好,我的都在这个是uart.c文件中,以前的代码写的狗屎一般,看思路就行了。
5、将proto.c文件里边
void Auth(unsigned char *pBuf , unsigned short int Length);
void Unpack_Auth_Response(unsigned char *buf , unsigned short int Length );
void Unpack_Init_Response(unsigned char *buf , unsigned short int Length );
void SendDataToManuf(unsigned char *buf , unsigned short int Length);
void Unpack_SendDataToManufacturerSvrResponse(unsigned char *buf , unsigned short int Length );
5个函数中的串口发送函数换成我们自己的。
6、我们接收厂商服务器的数据都在
void Unpack_ManufacturerSvrSendDataPush(unsigned char *buf , unsigned short int Length )
函数你解析.
7、连接过程
|