|
1 广播数据
广播数据的格式如下:
可以看出广播数据是由好多个AD Structure组成,而AD Structure 的格式为Length + AD Type + AD Data。
●Length:AD Type 和 AD Data 的总长度
●AD Type:表示此 AD Structure 的类型,目前可在https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/查询。
●AD Data:具体的数据
所以每个AD Structure都表示不同类型的数据。
2 默认广播数据
为了方便理解我们以产品的默认广播数据为例:
可以看到默认广播数据由4个 AD Structure组成,分别为:
1. 0x02,0x01,0x06
●Length为 0x02,因为后续有2个字节的数据
●AD Type为0x01,通过查询此值表示 Flags
●AD Data 为0x06,Flags 数据的格式如下:
所以 0x05表示 LE General Discoverable Mode 和 BR/EDR Not Supported。
2. 0x03,0x02,0x60FE
●Length为 0x03,因为后续有3个字节的数据
●AD Type为0x02,表示16bit Service UUID
●AD Data 为0x60FE,此值为利尔达在蓝牙联盟注册的服务UUID
3. 0x09,0xFF,0xFE028B998538C1A4
●Length为 0x09,因为后续有9个字节的数据
●AD Type为0xFF,表示厂商自定义数据
●AD Data 为0xFE028B998538C1A4,此产品的自定义数据格式如下:
Field | Size(octets) | Notes | Company ID | 2 | 小端序,为利尔达在蓝牙联盟注册的公司ID | MAC | 6 | 小端序,蓝牙的MAC 地址 | 所以 Company ID 为 0x02FE ;MAC 为 A4:C1:38:59:ED:17
4. 0x18,0x09,0x424C452044657669636520383539393842
扫描响应包中包含此 AD Strucuure。
●Length为 0x18,因为后续有24个字节的数据
●AD Type为0x09,表示设备的广播名称
●AD Data 为0x424C452044657669636520383539393842,表示设备的广播名称,其转换为ASCII码后为:BLE Device 85998B
3 扫描响应包
由于广播包只支持最大31字节,所以当用户需广播超过31字节数据时,就需要用到扫描响应包来传输数据了。我们来看一下发送扫描响应包的流程:
当主机收到从机发送的广播包后可发 SCAN_REQ 给从机,从机收到后就会回 SCAN_RSP 给主机。
而SCAN_RSP 的格式与广播数据一致。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|