如何获得BLE广告渠道索引号

问题描述

当我阅读广告包时,我想获得广告频道索引号。我只能看到广告信息由标题信息,UUID,主要编号,次要编号和RSSI值组成。这些信息中是否有嵌入的通道号?我可以告诉我是否正在读取37/38/39频道上的数据包吗?

解决方法

iOS和Android均未提供任何API来告诉您数据包进入时无线电在三个BLE广告频道中的哪个。

像嵌入式Nordic SDK这样的低级平台也不提供此信息-它也不是BLE规范的一部分,尽管可以通过知道BLE扫描间隔何时开始以及相对于包的到达时间来推断信道。此间隔的开始。不幸的是,这种等效技术在iOS和Android上不可行,因为您无法知道扫描间隔何时开始。在这些平台上,可以使用设计为仅在第一个频道上发送广告的外部硬件发送器来实现此目的,从而允许您推断出时序,然后能够推断出所扫描的非定制BLE设备上的频道。但是,如果没有此功能,您将无法在移动设备上运气。

,

在所有使用HCI与蓝牙控制器通信的主机平台上,这是不可能的,因为HCI不会在广告事件中公开通道索引。大多数“大型”系统都使用HCI,例如Android,iOS,Linux,Windows,ESP32。

某些蓝牙控制器和主机在同一CPU上运行的嵌入式系统可能不使用HCI。这种系统的API可能在广告事件中包含频道索引。但是我还没有看到任何这样的API。