我正在接收EVT_LE_ADVERTISING_REPORT
来自 HCI 套接字。我想区分 BLE 信标和普通 BLE 设备(解析设备名称等)我有点困惑是否所有 BLE 设备都会发出信标或者它们是不同的。如果不同,那么它们的数据包格式如何?
BLE 信标帧只是 BLE 广告帧内的专用有效负载。寻找 BLE 信标的设备只需扫描 BLE 广告,查看每个广告,然后查看其中是否包含已知 BLE 信标格式(如 iBeacon、AltBeacon 或 Eddystone)的字节模式。
许多 BLE 设备类型都会发出广告,通常是为了宣传 GATT 服务。但除非设备专门设计为 BLE 信标,否则大多数 BLE 设备不会发射 BLE 信标帧。信标是一种特殊类型的 BLE 设备,尽管非常简单。
常见的 BLE 信标格式使用 BLE 服务广告(广告数据类型 0x16)或 BLE 制造商广告(广告数据类型 0xff)。然后,它们在这些数据包内包含一个字节序列,向接收者表明它们是特定的格式。遵循该字节模式,它们有几个专用于唯一标识符以及数据和发射器功率校准字段的字节。
使用制造商广告的常见信标格式包括 iBeacon 和 AltBeacon。
- AltBeacon 格式 https://github.com/AltBeacon/spec
- iBeacon 格式 https://stackoverflow.com/a/19040616/1461050
Eddystone 是一种使用服务广告的常见信标格式。
- 涡石格式 https://github.com/google/eddystone/blob/master/protocol-specification.md
非信标 BLE 设备也会发出类似于 Eddystone 格式的 GATT 服务广告,但使用不同的服务 UUID 来指示它们提供的特定服务。 (例如心跳监视器或智能手表配置服务。)但是,这些非信标 GATT 广告通常仅用于宣传其存在,而不是在广告本身内发送数据,因此智能手机和计算机可以连接到它们并使用设备托管的更复杂的 GATT 服务交换数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)