可穿戴设备(CC2541)上微信(3)

原创 2015年07月08日 09:29:23

微信規定了藍牙 BLE 需要有以下兩個特點。

1:可以傳輸無限長度的數據。

2:雙工,讀寫可以並發,互不干擾。

藍牙無法傳輸無限長度的數據,為了實現這個目的,需要定議一個規範。     

ps:当然是把数据截成奋斗奋斗奋斗奋斗奋斗的,然后再发送了。。。要不然怎么办。。。就是下面的这个东东了。。。

注:把一个特征值一次传输的数据,称为一帧(不同类型的特征值一次传输的数据长度是不一样的)。


藍牙設備需暴露兩個特徵值﹝Characteristics﹞:Write 特徵值,Indication 特徵值。藍牙設備從 Write 特徵值接受數據,從 Indication 特徵值發送數據。

UUID 0xFEC8  Properties:Indicate            

UUID 0xFEC7  Properties:Read Write   


蓝牙的数据传输是通过特征值实现的,那既然已经有了接受和发送的特征值,那就可以读写了数据了。。。

蓝牙设备写过程:

1. 分帧:假设蓝牙手环上有1k数据,要发给手机微信。由于一个特征值长度有限(如20个字节),显然需要分多次才能传输完成。1k 数据,要分成 1024 字节/ 20 字节=51 个帧。剩下的 4 个字节,不足一帧(20个字节),需补齐为一帧并对剩下的 16 个字节赋 0。总共是 52 帧。

2. 发送第一个帧:把第一个帧的内容放入特征值里面。然后通知手机读取数据,通知有两种方式,Indication 和 notify,这里使用 Indication 方式,即带响应的通知。当通知完成的时候,可以认为手机已经读完数据。这就完成了发送第一个帧。

3. 按照 2 的步骤,依次发送剩下的帧。

按照此方法可以发送无线长度的数据。

蓝牙设备读过程:                                                                                              

当蓝牙设备发现读特征值收到数据的时候,就接收数据,并追加到设备的 buf 里。

 

注意:蓝牙设备必须等微信 app 订阅了 Characteristics 之后,才能 indicate 数据,否者会造成设备发送数据丢失的问题。


版权声明:本文为博主原创文章,未经博主允许不得转载。

可穿戴设备(CC2541)上微信(2)

adverData 和 scanResponseData

可穿戴设备(CC2541)上微信(7)

一、 微信客户端和 BLE 设备通信流程 1. 微信通过聊天窗口向 BLE 设备发送数据,数据流程如下: 微信客户端 ---> 微信服务器 ---> 客户服务器 ---> 微信服务器 ---> 微信客...

可穿戴设备(CC2541)上微信(1)

extern uint8_t Pack_Data(uint16 EmCmdIDData) ; extern uint8_t UnPack_Data(uint8_t *buf, int buf_len)...

可穿戴设备(CC2541)上微信(5)

1. 当 BLE 设备与微信连接后,微信客户端通过下面的程序向 BLE 设备发送数据: static bStatus_t wechatIOT_WriteAttrCB( uint16 connHandl...

cc2541微信接入参考demo

  • 2016年02月15日 15:17
  • 11.37MB
  • 下载

IDC:2017年Q3全球可穿戴设备总出货量2630万台 小米Fitbit并列第一

2017-12-04 10:07  来源: 前瞻网 导读: 根据国际数据公司IDC的数据,全球可穿戴设备市场在2017年第三季度(2017年第三季度)又迈出了一步,总出货量达2630万台,同比增长7....

CC2541微信硬件IAR工程

  • 2016年04月11日 18:24
  • 3.77MB
  • 下载

LMT70可穿戴设备

  • 2016年11月05日 09:40
  • 1.6MB
  • 下载

【BLE】CC2541获取设备的MAC地址实验

安卓调试工具扫描时直接显示就是MAC地址。 苹果设备是以UUID的方式显示。 所以我们直接用安卓设备来测试。我们连接时可以知道主机的地址。 变量是gapRole_ConnectedDevAddr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:可穿戴设备(CC2541)上微信(3)
举报原因:
原因补充:

(最多只允许输入30个字)