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.

[参考译文] CC2540DK:如何控制广播广播广播广播包的数量

Guru**** 2589300 points
Other Parts Discussed in Thread: CC2540, CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/603516/cc2540dk-how-to-control-number-of-advertising-packets-broadcast

器件型号:CC2540DK

您好!

我将使用 BLE Stack 1.4.2.2随附的 simpleBLEBroadcaster 示例项目。  由于应用要求、我需要在终止广播、等待可编程的时间长度、更新广播负载、然后重新开始过程之前控制广播的广播包数量。  有什么建议吗?

谢谢、

Andy

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

    当您开始广播时、它将以预定义的间隔无限期广播。 您的应用程序可以使用基于间隔的计时器在经过估计的广播间隔数后停止广播。 然后更新负载、并再次开始广播。 请参阅有关广播的 SimpleLink Academy 模块:
    dev.ti.com/.../

    CC254x 的代码应类似。

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

    感谢您的帮助。 我运行了 SimpleLink Academy 模块、TI 看起来好像必须向 simpleBLEBroadcaster 代码添加周期性事件。 今天、我将花时间浏览 Academy 模块中使用的 simple_peripheral 模块、并将我能做的事情移植到 BLEBroadcaster。

    这又给我带来了三个问题:

    如何停止(停止) BLE 广播-我看不到它的 GAPRole /函数?

    由于广播类型是 GAP_ADTYPE_ADV_NONCONN_IND 非连接和非定向、因此我可以设置的最短广播间隔似乎是100ms。 如果我将其设置为任何更短的值、我会在 CC2540的 LCD 显示屏的第三行上看到"Error"。 我想将该参数降低到20ms。

    如果变量 gapRole_AddertOffTime (GAPROLE_advertise_off_time)设置为0、则广播应在30.72秒后停止、但广播不会停止。 我尝试使用相同的结果为该变量设置其他值-广播持续进行。

    Andy 的想法?

    谢谢、
    Andy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我能够让广告根据时间开始和停止。 唯一的问题是为什么我不能得到低于100ms 的广播间隔…
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

    遗憾的是、这是规范设置的限制、对于非定向非连接广播、限制为100ms、非定向可连接广播限制为20ms 的最小值。 但是、如果您使用 CC2640、则该技术规格会遵循后续规范、允许针对非连接的 ADV 快速广播20ms。  

    祝你一切顺利

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

    扎希德

    我了解根据 BLE 规范对每种广播类型施加的仿造产品。  感谢您的回复。

    请回答以下问题部分:

    GAPROLE_Adv_OFF_TIME 的功能是什么?  在 E2E BLE 论坛中搜索得到了两个不同的答案:
    1 -如果广播被禁用、然后又被启用、 则在堆栈再次开始广播之前、GAPROLE_advertise_off_time 中的毫秒数将需要过期。
    2 -启用后、广播将在 GAPROLE_advertise_off_time (毫秒)后停止。

    不确定这些定义中的任何一个是否正确。

    感谢您的帮助!

    Andy

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

    您好!  

    第一个问题正确、如 peripheral.c 中所示:

    else // GAP_END_DISCOVERAT_DONE_EVENT

    if (gapRole_AddertOffTime!= 0)

    if ((gapRole_AdvEnabled)||(gapRole_AdvNonConnEnabled))

    void osal_start_timerEx (gapRole_TaskID、start_advertising_EVT、gapRole_AddertOffTime);

    此外、在使用外设.h 中提到的有限广播模式时也是如此:

    #define GAPROLE_advertise_off_time  0x306 //!<有限广播的广播关闭时间(以毫秒为单位)。

    祝你一切顺利

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

    那么、第一个答案是正确的、时间以毫秒为单位?

    由于我将 simpleBLEBroadcaster 与 GAP_ADTYPE_ADV_NONCONN_IND 一起使用、这仍然正确吗?

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

    通过 simpleBLEBroadcaster .c 和 Broadcaster .c 快速搜索回答了我的最后一个问题。 感谢您的帮助!

    Andy