This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2540:满足 GAPOBSOLEVERROLE_MAX_SCAN_RES 中指定的器件数量时取消发现

Guru**** 2577385 points
Other Parts Discussed in Thread: CC2540

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/565824/cc2540-cancel-discovery-when-number-of-devices-specified-in-gapobserverrole_max_scan_res-is-met

器件型号:CC2540

我正在尝试构建一个系统、在该系统中、我将尽可能快地在具有 BLE Stack 1.4.0的 CC2540上发现器件(以观测器角色)。  虽然我显著改进了发现流程、但仍然存在一些小问题。

我想在发现  GAPOBSIERVERROLE_MAX_SCAN_RES 中指定的器件数量后立即取消当前发现(在本次讨论中、假设为8)。  换句话说、当我在事件  GAP_DEVICE_INFO_EVENT 中进行回调并且知道这是最后一个器件时、我没有太多等待的时间、我想取消当前的发现、以便我可以立即开始新的发现。  

唯一的问题是 、为给定器件的广播调用 GAP_DEVICE_INFO_EVENT 一次、如果有、则可能再次调用 GAP_DEVICE_INFO_EVENT。 同一器件的广播和扫描响应显示为两 个单独的 GAP_DEVICE_INFO_EVENT 事件。  如果我接收到广播并且是第8个器件、我可以取消发现、但很可能会跟随扫描响应、也可能没有扫描响应。  如果有扫描响应、这是我不想丢失的重要信息。  在这种情况下、取消发现的最佳方法是什么?

感谢您的回答。

此致、
KK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、KK、

    我认为您遇到了一种只需做出选择的情况; 您可以在首次发现第八个设备后取消扫描并释放扫描响应中的信息、或者在第八个设备提供扫描响应并在等待时有丢失时间的风险后取消扫描。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    如果有要遵循的扫描响应、通常会出现在高级报告之后。 对于不可连接或直接广播、您将无法获得扫描响应、对于这些、您可以立即取消发现。 但对于其他两种广播类型、您能否等待大约一秒钟才能取消发现?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Marie 和 Zahid。 感谢您的回答。

    根据扫描间隔和扫描窗口的设置、我正在处理30ms - 90ms 范围内的扫描持续时间、其中 max_scan_res 为8个器件、占空比为100%。 因此、第二个周期需要很长的等待时间。 指定更大数量的器件(在 max_scan_res 中)似乎不会产生良好的结果。 使用 BTool 进行测试时、如果我使用大于10的器件、我似乎会从存储器中获取消息、间隔时间为10、而在 max_scan_res 为15或更大时则更频繁。 此外、有人告诉我、在 CC2540清除重复项时、只有当 max_scan_res 小于或等于8个器件时才会发生。

    考虑到所有这些、我希望有一些明显的方法来处理这个问题。 但是、我觉得我必须在丢失最后一次扫描响应或等待发现完成事件之间做出选择。

    感谢你的帮助。

    此致、
    KK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在与我们的 TI 代表交谈时、我被要求跟进此问题。

    目前、扫描参数如下:

    扫描间隔:  15ms
    扫描窗口: 15ms
    扫描持续时间: 45ms
    最大器件数:  8 (即 MAX_SCAN_RES)

    如果我在45毫秒之前得到8个器件、我想取消扫描、但要求我等待1秒、这种激进的扫描模式比目的更重要、因为我所说的是节省毫秒。  虽然我不得不说、我发现这种积极的交付方式超出了我最初的预期、但我们销售的解决方案要求我们比当前的解决方案做得更好。

    一如既往、我非常感谢 TI 的及时帮助。

    此致、
    KK  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、KK、

    我能想到的最佳解决方案是立即取消第8个扫描响应数据包(GAP_ADRPT_SCAN_RSP)之后的发现。

    否则、在第8个广播包后以几毫秒的超时值取消发现(根据监听器、理想情况下、您应在扫描请求后大约300us 内以最小的干扰获得扫描响应)。 这应涵盖大多数扫描响应数据包、同时仍保持积极主动的扫描周期。  

    祝你一切顺利