微信蓝牙外设协议1.0.3beta.docxVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微信蓝牙外设协议1.0.3beta

微信蓝牙外设协议Project BlueShadow V1.0.3Tencent Confidential文档变更日志版本变更日期0.1初稿2013/10/90.2针对常见问题,增加说明2013/10/180.3针对常见问题,增加说明。修改包头结构。2013/11/50.4第二期初稿增加17条protobuf协议,废弃1条,修改1条2013/11/260.5暂时去掉二期的内容(17条protobuf),在一期的基础上增加三条协议,并修改auth协议。加入加密解密部分说明。2014/2/120.6修改uuid的规定。补充协议字段和错误码。补充加密部分细节。2014/2/270.7修改加密协议,增加例子。补充不加密的协议。补充错误码。2014/3/40.7 . 1修改proto里的UserId,Challeange字段。2014/3/70.7. 2规定低功耗蓝牙广播包必须包含mac地址。InitResp增加可选字段以支持自动同步模式,修改解码失败错误码。2014/4/30.7 . 3修改SendData, SendDataPush两条协议,增加type字段,用来区分是发送给厂商服务器,还是发送给公众平台服务器。2014/4/240 . 7 . 4修改ble蓝牙service uuid的值。2014/4/250 . 7 . 5公众平台协议手环修改:增加BaseResponse字段。2014/4/301 . 0 . 1提升版本号为1.0.1 Beta2014/6/91 . 0 . 2增加Read Characteristics,以支持ios多app连接。增加html jsapi支持。公众平台协议手环修改:增加rtc时间支持。废弃一些字段,修改协议名字为SendData,RecvData等。2014/7/151 . 0 . 3增加蓝牙扫描绑定相关规范。2014/8/18目录概要5整体架构5主要功能5蓝牙BLE模拟成流6协议71绑定7扫码绑定8蓝牙扫描绑定82扫描和连接93 流94 包104 包结构105 定长包头116 变长包体117身份验证和加密128 不加密的方法149 会话约定1510 时序1511 Read Characteristics1512 其他16微信的Protobuf协议161 概述162 命令列表163 错误码174 JSAPI19函数19事件21附录221 ProtoBuf协议介绍222 蓝牙硬件一些规定233 Ios BLE设备的截图234包的二进制例子255 包的数据流图266 包的时序图277 加解密字段288 Md5DeviceTypeAndDeviceId的例子299 CBC例子3010 CRC32例子3111 微信蓝牙外设proto文件3112 微信公众平台proto文件3513 JsApi例子37概要该文档规范了蓝牙设备和手机上的微信的通信协议协议支持经典蓝牙和4.0 BLE蓝牙,目前支持ios和andriod两个系统,后续会扩展到其他系统。整体架构厂商服务器和外设,由厂商开发完成。微信会提供服务器的接口以对接厂商的服务器,会提供手机的接口(如本文规定的蓝牙协议)以对接厂商的外设。主要功能该协议打通了设备和厂商服务器之间的数据链路,也就是支持将设备上的数据发送到厂商的服务器上,也支持将厂商的数据发送到设备。厂商的数据对于微信来说,是黑盒,微信不对设备数据做分析。该协议也打通了设备和微信服务器之间的数据链路。设备和微信服务器之间的数据格式由微信规定,例如登录,新消息通知等。蓝牙BLE模拟成流微信支持蓝牙BLE。微信规定了蓝牙BLE设备需要先模拟成流(即stream,输入输出流)。经典蓝牙的RFCOMM,就是一个流。流具有的特性有:可以传输无限长度的数据 双工,读写可以并发,互不干扰。显然,蓝牙BLE无法传输无限长度的数据,为了实现这个目的,需要定义一个规范。蓝牙设备需暴露两个特征值(Characteristics):Write特征值,Indication特征值。蓝牙设备从Write特征值接受数据,从Indication特征值发送数据。Indication特征值类型是bytes。这里我们约定,把一个特征值一次传输的数据,称为一帧(不同类型的特征值一次传输的数据长度是不一样的)。注意:应用层上的数据包(例如1k大小),会分散成许多帧来传输。蓝牙设备写过程:分帧:假设蓝牙手环上有1k数据,要发给手机微信。由于一个特征值长度有限(如20个字节),显然需要分多次才能传输完成。1k数据,要分成1024字节/ 20字节=51 个帧。剩下的4个字节,不足一帧(20个字节),需补齐为一帧并对剩下的16个字节赋0。总共是52帧。发送第一个帧:把第一个帧的内容放入特征值里面。然后通知手机读取数据,通知有两种方式,Indica

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档