TYPE = 0x17,表示希望这个广播包被指定的目标设备处理,此设备绑定了公开地址 DATA 是目标地址列表,每个地址6字节。 随机目标地址 TYPE = 0x18,定义和前一个类似,表示希望这个广播包被指定的目标设备处理,此设备绑定了随机地址 DATA 是目标地址列表,每个地址6字节。 Appearance TYPE = 0x19, DATA 是表示了设备的...
在广播数据单元的数据部分中,第一个字节代表数据类型(AD type),决定数据部分表示的是什么数据。(即广播数据单元第二个字节为AD type) image AD Type的类型如下: Flags:TYPE =0x01。用来标识设备LE物理连接。 bit 0: LE 有限发现模式 bit 1: LE 普通发现模式 bit 2: 不支持 BR/EDR bit 3: 对 Same...
如图中所示,AD Structure 的组成是:第一个字节是长度值 Len,表示接下来的 Len 个字节是数据部分。数据部分的第一个字节表示数据的类型AD Type,剩下的 Len - 1 个字节是真正的数据 AD data。其中 AD type 非常关键,决定了 AD Data 的数据代表的是什么,怎么解析。 无效数据部分:因为广播包的长度必须是 31 ...
这样就共有 6 种 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...
举个例子:如果我全部使用自定义数据包,length=30,type=0xff,data[29],真实能够填充的就是29个字节 广播数据包类型type type值是蓝牙联盟定义的,全球统一,宏的命名是每个厂家自己定义的,如下是nordic sdk的定义。 /**@defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format ...
广播包中包含若干个广播数据单元,广播数据单元也称为 AD Structure 。广播数据单元 = 长度值Length + AD type + AD Data。长度值 Length 只占 一个字节 ,并且位于广播数据单元的 第一个字节 。概念的东西有些抽象,先看看下面的广播报文: 0x代表这串字符串是十六进制的字符串。 两...
02 01 06是一个AD Structure,数据部分长度为2字节,类型是0x01,描述设备物理连接状态,数据部分0x06,1字节8bit,每bit都是一个标志位([预留]|[预留]|[预留]|[同时支持BLE和BR/EDR(Host)]|[同时支持BLE和BR/EDR(Controller)]|[不支持BR/EDR]|[普通发现模式]|[有限发现模式]),那么这个广播就是普通发现模式...
将Network PDU封装到BLE广播包中,设置AD Type为0x2B,表示Mesh Message。 要接收和解析Mesh Message,您需要以下几个步骤: 从BLE广播包中提取Network PDU,检查AD Type是否为0x2B,表示Mesh Message。 使用网络密钥(NetKey)派生的解密密钥(EncryptionKey)和隐私密钥(PrivacyKey)对Network PDU进行解密和反混淆,得到网络层...
可以看出广播数据是14字节,总共4个AD Structure,如下: 这里要注意,广播数据不能超过31字节。 5、部分AD Type说明 5.1、Flags(0x01) 可以看出,flags的值是一个字节,bit5-bit7保留。 5.2、不完整的16位UUID(0x02) 5.3、广播间隔(0x1A) 可以看出,广播间隔数据为2个字节。
0x12 表示SLAVE CONNECTION INTERVAL RANGE 后面四字节:06 00 80 0c 对于SLAVE CONNECTION INTERVAL RANGE,其定义如下: 各个AD Type的值在QN9020 SDK里也可以看到: /// GAP Advertising Flags enum { /// Flag GAP_AD_TYPE_FLAGS = 0x01, /// Use of more than 16 bits UUID ...