我正在从HCI套接字接收EVT_LE_ADVERTISING_REPORT
。我想区分BLE信标和普通BLE设备(解析设备名称等),对于所有BLE设备是否都发出信标还是它们不同,我几乎不感到困惑。如果不同,那么它们的数据包格式如何?
答案 0 :(得分:1)
BLE信标帧只是BLE广告帧内的一种特殊负载。寻找BLE信标的设备只需对BLE广告进行扫描,查看每个BLE广告,并查看其中是否包含已知BLE信标格式(如iBeacon,AltBeacon或Eddystone)的字节模式。
很多BLE设备类型发出广告,通常是为了宣传GATT服务。但是,除非将设备专门设计为BLE信标,否则大多数BLE设备不会发出BLE信标帧。信标是BLE设备的一种特殊类型,尽管它很简单。
常见的BLE信标格式使用BLE服务广告(广告数据类型0x16)或BLE制造商广告(广告数据类型0xff)。然后,它们在这些数据包中包含一个字节序列,向接收方指示它们是一种特殊格式。按照该字节模式,它们有几个字节专用于唯一标识符,数据和发射器功率校准字段。
使用制造商广告的常见信标格式包括iBeacon和AltBeacon。
Eddystone是使用服务广告的常见信标格式。
非信标BLE设备还会发出类似于Eddystone格式的GATT服务广告,但具有不同的服务UUID,表示它们提供的特定服务。 (例如,心跳监视器或智能手表配置服务。)但是,这些非信标GATT广告通常不用于在广告内部发送数据,而仅用于广告其存在,因此智能手机和计算机可以与其连接并使用设备托管的更复杂的GATT服务来交换数据。