可穿戴设备(CC2541)上微信(3)
来源:互联网 发布:php 模板引擎 排行 编辑:程序博客网 时间:2024/05/29 03:02
微信規定了藍牙 BLE 需要有以下兩個特點。
1:可以傳輸無限長度的數據。
2:雙工,讀寫可以並發,互不干擾。
藍牙無法傳輸無限長度的數據,為了實現這個目的,需要定議一個規範。
ps:当然是把数据截成一段一段的,然后再发送了。。。要不然怎么办。。。就是下面的帧这个东东了。。。
注:把一个特征值一次传输的数据,称为一帧(不同类型的特征值一次传输的数据长度是不一样的)。
藍牙設備需暴露兩個特徵值﹝Characteristics﹞:Write 特徵值,Indication 特徵值。藍牙設備從 Write 特徵值接受數據,從 Indication 特徵值發送數據。
UUID 0xFEC8 Properties:IndicateUUID 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)上微信(3)
- 可穿戴设备(CC2541)上微信(1)
- 可穿戴设备(CC2541)上微信(2)
- 可穿戴设备(CC2541)上微信(4)
- 可穿戴设备(CC2541)上微信(5)
- 可穿戴设备(CC2541)上微信(6)
- 可穿戴设备(CC2541)上微信(7)
- 可穿戴设备(CC2541)上微信(8)
- 可穿戴设备
- 可穿戴设备的发展方向
- 可穿戴设备的激情
- 可穿戴设备相关资料
- 可穿戴设备交互趋势
- 可穿戴设备开发者大会
- 虚拟现实(VR)、现实增强(AR)、全息现实以及可穿戴设备
- 在手机与可穿戴设备Wearable通过蓝牙Bluetooth传递Assets(图片等)
- 可穿戴设备为什么那么火
- 可穿戴设备未来市场巨大
- 互联网模式下我们更加应该“专注”
- 【Win 10应用开发】如何知道当前APP在哪个平台设备上运行
- EPOLL 边缘触发学习
- 【c语言】调整数组使奇数全部都位于偶数前面
- Unity IOS微信SDK接入
- 可穿戴设备(CC2541)上微信(3)
- hog源码分析
- Java中==与equals的区别小结
- UGUI打包图集工具插件Simple Sprite Packer
- android防被杀
- Python中*args 和**kwargs的用法
- Java-继承概述
- Redis简介以及数据类型存储
- shell