繁体   English   中英

BLE 设备是否需要响应 SCAN_REQ 请求?

[英]Are BLE devices required to respond to a SCAN_REQ requests?

我有一个不响应 SCAN_REQ 的 BLE 设备,我正在根据https://github.com/espressif/esp-idf/issues/10660与供应商独立解决这个问题。

当我使用 Nordic nRD Connect iphone 应用程序作为客户端时,我可以在扫描列表中看到该设备并可以连接到它。 但是,当我使用另一个客户端(python Windows)时,如果我指定确切地址,该客户端不会在其扫描列表中显示该设备并且不会连接到它。

我的问题是,BLE 4 设备是否需要响应 SCAN_REQ 请求才能被发现和连接,或者只是提供额外广告数据的可选响应?

有两种可能的扫描方法——被动扫描或主动扫描。

被动扫描是指扫描器接收广告数据包并处理内容。

然而,在主动扫描的情况下,设备可能会决定它想要了解有关广告设备的更多信息,并通过发送扫描请求 GAP 协议数据单元 (PDU) 来响应初始广告数据包。 这基本上意味着“告诉我更多”。 接收扫描请求的设备可以发回包含更多信息的扫描响应 PDU,再次以 AD 类型集合的形式。

以上摘自: https://www.bluetooth.com/blog/advertising-works-part-1/ 【重点我的】。

是的,需要用扫描回复来回复。 这是在蓝牙核心 v5.3,第 6 卷 B 部分(链路层),第 4.4.2.3 节中使用“应”一词定义的。

不过有一个例外。 controller 中有一个过滤器接受列表,其中可以包含允许扫描和/或连接的中央地址。 主机可以设置四种组合(广告过滤策略),分别控制是否将此列表用于过滤传入的 SCAN_REQ 和 CONNECT_IND 数据包。 如果不使用此过滤机制,则设备必须对每个扫描请求发送扫描响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM