蓝牙广播包
来源:互联网 发布:网络销售客服工作内容 编辑:程序博客网 时间:2024/06/15 19:11
广播包有两种: 广播包 (Advertising Data)和 响应包 (Scan Response),其中广播包是每个设备必须广播的,而响应包是可选的。
每个包都是31个字节,数据包分有效数据和无效数据两部分。因为广播包的长度必须是 31 个 byte,如果有效数据部分不到 31 自己,剩下的就用 0 补全,这部分的数据是无效的。
第一个字节:AD Len
第二个字节:AD type
第三个字节:AD Data
AD type 和 AD Data的对应关系:
1、AD type 为 0x01(标识设备LE物理连接功能)
AD data:
- bit 0: LE 有限发现模式
- bit 1: LE 普通发现模式
- bit 2: 不支持 BR/EDR
- bit 3: 对 Same Device Capable(Controller) 同时支持 BLE 和 BR/EDR
- bit 4: 对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
- bit 5..7: 预留
2、AD type :
- 非完整的 16 bit UUID 列表: TYPE = 0x02;
- 完整的 16 bit UUID 列表: TYPE = 0x03;
- 非完整的 32 bit UUID 列表: TYPE = 0x04;
- 完整的 32 bit UUID 列表: TYPE = 0x05;
- 非完整的 128 bit UUID 列表: TYPE = 0x06;
- 完整的 128 bit UUID 列表: TYPE = 0x07;
3、AD type:
- 设备全名: TYPE = 0x08
- 设备简称: TYPE = 0x09
4、AD type 为 0x0A(TX PowerLevel)
AD data部分是一个字节,表示 -127 到 + 127 dBm。
5、AD type 为 0x11(TX PowerLevel)
AD data也是 Flag,每个 bit 表示一个功能:
- bit 0: OOB Flag,0 表示没有 OOB 数据,1 表示有
- bit 1: 支持 LE
- bit 2: 对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
- bit 3: 地址类型,0 表示公开地址,1 表示随机地址
6、AD type 为0x12(外设(Slave)连接间隔范围)
AD data中定义了 Slave 最大和最小连接间隔,数据包含 4 个字节:
- 前 2 字节:定义最小连接间隔,取值范围:0x0006 ~ 0x0C80,而 0xFFFF 表示未定义;
- 后 2 字节:定义最大连接间隔,同上,不过需要保证最大连接间隔大于或者等于最小连接间隔。
举个例子:
const u8tbl_advData[] = {0x05, 0x09, 'z', 'z', 'x', 'h',}
第一个字节是数据长度,第二个字节0x09表示设备简称,后面的就是设备名
阅读全文
0 0
- 蓝牙广播包
- 蓝牙广播包
- 蓝牙4.0 BLE 广播包解析
- 蓝牙4.0 BLE 广播包解析
- 蓝牙4.0BLE抓包 广播包解析
- 蓝牙4.0BLE抓包(二) – 广播包解析
- 蓝牙4.0BLE抓包(二) – 广播包解析
- 蓝牙4.0BLE抓包(二) – 广播包解析
- 广播蓝牙服务
- 蓝牙广播的解决方案
- 修改蓝牙广播间隔
- Android 蓝牙广播详解
- ios蓝牙广播
- 蓝牙BLE 广播数据
- 【蓝牙BLE】cc2540主机获取广播包存在的一些问题。
- NRF51-SDK的低功耗蓝牙广播包的单通道扫描实现
- 关于iOS 8, 8.2 蓝牙广播包数据变化的问题
- <蓝牙BLE>如何修改蓝牙广播时间
- Flexbox 实战:使用 Flexbox 轻松实现下拉导航菜单
- agc012E Camel and Oases(状压dp+思路题)
- eclipse中project->clean、mvn clean 的作用是什么
- 【NOIP2017Finally模拟11.9】总结
- linux下配置挂载本地yum云
- 蓝牙广播包
- 线性表链接存储(单链表)
- arcgis api for javascrpit 基于dojo框架的query查询功能2
- 你想怎样工作?平淡无奇还是激情四射?
- 02 js基础 BOM
- 深入浅出了解 JavaScript 中的 this
- 线程同步-信号量
- Android ListView异步加载图片乱序问题,原因分析及解决方案
- 海云安:利益博弈,APP安全漏洞背后的攻防交锋