【发布时间】:2016-10-26 07:03:06
【问题描述】:
一个 BLE 广告最多可以发送 31 个字节。在一个广告中,可能有多个广告。
我想知道制作一个只包含一个制造商特定数据广告的广告是否有效,以及这种广告是否可以填满所有 31 个字节(1 个字节的长度字段,1 个字节的类型字段(0xff )、2 字节 CIC 和 27 字节自定义数据)。
蓝牙核心规范或任何其他规范是否指定了这一点?
【问题讨论】:
一个 BLE 广告最多可以发送 31 个字节。在一个广告中,可能有多个广告。
我想知道制作一个只包含一个制造商特定数据广告的广告是否有效,以及这种广告是否可以填满所有 31 个字节(1 个字节的长度字段,1 个字节的类型字段(0xff )、2 字节 CIC 和 27 字节自定义数据)。
蓝牙核心规范或任何其他规范是否指定了这一点?
【问题讨论】:
来自规范-蓝牙核心规范的补充 第 4 版 A 部分 1.4:
1.4.1 说明
制造商特定数据类型用于制造商特定 数据。前两个数据字节应包含公司标识符 分配编号 - 公司标识符文档中的代码。这 数据中任何其他八位字节的解释应由以下定义 由公司标识符指定的制造商。
1.4.2 格式 数据类型
描述:大小:2 个或更多字节 前 2 个字节包含 公司标识符代码后跟额外的制造商特定 数据
表 1.4:制造商特定数据类型
所以除了广告包长度本身没有限制,每个广告数据31个字节,另外31个字节用于扫描响应。
对于具有标志广告类型的广告数据开头的 3 个字节有要求(任何非零长度广告都需要,请参阅 Core V4.0 Volume 3 Part C 11.1.3 em>),将您的广告数据长度减少 3。
然后是制造广告类型标志和长度,它们会添加到您的制造数据中,减去另外 2 个字节。这给你留下了:
用于制造数据本身(尽管其中两个字节应用于指定公司标识符代码),这将导致:
【讨论】:
BT规范对广告数据(AdvData)中的AD Type数据没有限制。AdvData可以为空,也可以包含一个/多个AD Type数据。这取决于设备/应用程序。因此,没有什么可以阻止您使用制造商特定数据的全部容量。
注意:AD 类型格式在核心规范补充中定义。
【讨论】: