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.

[参考译文] CC2640R2L:发送的广播包计数

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1001087/cc2640r2l-count-advertising-packets-sent

器件型号:CC2640R2L

您好!

我想发送特定数量的广播数据包。

首先、我 尝试通过时间间隔和广播 超时参数(TGAP_GEN_DISC_ADV_MIN 和 TGAP_LIM_ADV_TIMEOUT)设置它。 例如、假设我要发送10个间隔为20ms 的数据包、我将  TGAP_GEN_DISK_ADV_MIN 设置 为20ms、 并将 TGAP_LIM_ADV_TIMEOUT 设置为200ms。 但是、当我使用监听器检查时、我发现数据包的间隔介于20-30 ms 之间、这意味着每次我随机发送8-10个数据包。 如果我使用大于100ms 的间隔、这种方法可能起作用、但我需要尽可能快的间隔。

扫描时、存在 GAP_DEVICE_INFO_EVENT 和 GAP_DEVICE_DISCOVERY 事件、这意味着扫描时有一个用于查找单个器件的事件、整个过程结束时有一个事件、而广播似乎只有一个用于结束整个过程的事件(GAP_END_DISCONEL_EVENT_EVENT)。

我已经浏览过 HCI 和 GAP API、尝试查找"发送的数据包"事件、或者可能会按数据包数量而不是超时来限制广播、但我找不到一个。 是否有任何实施建议?  

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

    您好!

    感谢您的查询。 我通知了一位同事、他将尽快提供更多见解。

    此致、

    拉斐尔

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

    你好。

    我有几个问题可以帮助我们更有效地解决问题。 您使用的是哪个 SDK 版本? 您将项目基于哪些示例应用(simple_peripheral、simple_broadcaster 等)? 您可以通过使用 在发送单个广播后生成的 GAP_EVT_AVD_END 事件来发送突发广播。 您可以启用广播、捕获  GAP_EVT_AVD_END 事件、使用全局计数器递增已发送的广播数量、添加一些逻辑以便在全局计数器达到指定数量时禁用广播、并 重置全局计数器。

    遵循上述通用逻辑的解决方案应能够实现具有所需突发中广播数量的突发广播。

    此致、

    1月

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

    您好!

    我使用 的是 SimpleLink CC2640R2 SDK 5.10.00.02、我的项目基于 multi_role。 我找不到 任何有关 GAP_EVT_AVD_END 的信息、可能它不是我正在使用的 SDK 的一部分?

    Eyal

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

    您好、Eyal、

    很抱歉、该事件属于 BLE5 SDK 的一部分。 BLE3没有等效事件、但您应该能够设置 与连接间隔相同的时钟持续时间。 可以设置时钟以生成事件。 可以创建跟踪发送的广播的全局变量,每次创建之前提到的事件时,该全局变量都应递增。 这应该为发送的广告总数提供合理的估计。

    此致、

    1月

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

    您好、Eyal、

    进行进一步研究后、似乎有一种方法可以设置在广播事件结束时触发的事件。 这可以使用 HCI_EXT_AdvEventNoticeCmd ()来完成。 请告诉我该 API 是否有助于实现您所需的用例。

    此致、

    1月