BLE广告最多可发送31个字节。在广告中,可能有几个广告。
我想知道广告是否只包含一个制造商特定数据AD,以及这种AD是否可以填满所有31个字节(1个字节的长度字段,1个字节的类型字段)是否有效(0xff),2个字节的CIC和27个字节的自定义数据。)
蓝牙核心规范或任何其他规范是否指明了这一点?
答案 0 :(得分:8)
从蓝牙核心规范的spec- 补充说明 第4版A部分1.4 :
1.4.1说明
制造商特定数据类型用于制造商特定 数据。前两个数据八位字节应包含公司标识符 来自Assigned Numbers - Company Identifiers文档的代码。该 数据中任何其他八位字节的解释应由 由公司标识符指定的制造商。
1.4.2格式 数据类型<>
描述:大小: 2个或更多八位字节前两个八位字节包含 公司标识符代码后跟其他制造商特定 数据
表1.4:制造商特定数据类型
因此除了广告包长度本身没有限制,每个广告数据为31个字节,扫描响应为31个字节。
要求广告数据开头的3个字节具有Flags广告类型(任何非零长度广告都需要,请参阅 Core V4.0第3卷第C部分11.1.3 ),将广告数据长度减少3个。
然后,制造广告类型标志和长度会添加到您的制造数据中,减去另外2个字节。这让你:
用于制造数据本身(尽管应该使用其中两个字节来指定公司标识符代码),这将带来:
答案 1 :(得分:1)
关于广告数据(AdvData)中的AD类型数据,BT规范没有限制.AdvData可以为空或包含一个/多个AD类型数据。这取决于设备/应用程序。因此,没有什么可以阻止您使用制造商特定数据的完整容量。
注意:AD类型格式在核心规范补充中定义。