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.

[参考译文] LAUNCHXL-CC26X2R1:CC2652R2 简单外设采样上的 SCAN_RSP 响应行为

Guru**** 2535750 points
Other Parts Discussed in Thread: LAUNCHXL-CC26X2R1, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1543490/launchxl-cc26x2r1-scan_rsp-response-behavior-on-cc2652r2-simple-peripheral-sample

器件型号:LAUNCHXL-CC26X2R1
主题: SysConfig 中讨论的其他器件

工具/软件:

您好:



目前、我正在根据“简单外设“示例应用、使用 SimpleLink SDK BLE5-Stack 来使用 TI CC2652R2 器件进行开发。

问题:

在射频屏蔽盒(附近没有其他 BLE 设备)内使用 BLE 协议分析器测量广播包时、我观察到以下数据包序列:

ADV_IND→(多个 ADV_IND)→SCAN_RSP→ADV_IND



问题:

1.规范中是否存在这样连续发送 ADV_IND 然后发送 SCAN_RSP 的任何问题?

2.是否还有其他常见原因或注意事项可能解释为什么 SCAN_RSP 数据包在没有外部 BLE 设备的环境中发送?

环境:

-设备:CC2652R2 (LAUNCHXL-CC26X2R1)

- SDK 版本:SimpleLink CC26x2 SDK v.8.30.01.01

-示例应用:简单外设


提前感谢您的支持和指导。

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

    您好!

    如果没有发送扫描请求、则没有理由让简单外设示例发送扫描响应。 这是一个问题,已经提请我们注意 2 周前在项目零示例 (https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1536203/cc2652r-does-the-simplelink-sdk-sample-software-project_zero-spontaneously-send-scan-responses ), 但有这个问题的用户没有告诉我们,如果他们最终使用了屏蔽盒,你有.

    如果项目根本不需要扫描响应、您可以在 SysConfig 中将外设设置为不可扫描、从而禁用扫描响应。

    此致、
    Maxence

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

    您好!

    如果您希望 100%确定您没有收到扫描请求、则可以使用 GapAdv_create 创建广播集、使用 GapAdv_setEventMask  函数接受扫描请求事件、然后 在回调收到扫描事件时在提供给 GapAdv_create 的回调函数内添加 printf。

    此致、
    Maxence

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

    您好、

    感谢您的答复。 我知道您不会在没有扫描请求的情况下发送它们。

    我将检查我们是否确实没有按照您的建议获得扫描请求。

    此致。

    P.S.我 也喜欢 Glaceon!

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

    您好!

    “我不会介意的,我想要的只是要和你在一起。

    此致、
    Maxence

    P.S.真的很高兴见到一个同事 Glaceon Enjoyer Grin另一个 E2E 成员(瑞安)有 Jolteon 作为他们的个人资料图片,也许有一天我们会有完整的团队,谁知道 Heart eyes

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

    你(们)好

    根据您的建议、我尝试打印扫描请求事件回调中的事件发生次数。

    因此、我们发现扫描请求对讲机暗盒中仍存在扫描请求。 扫描响应仍在发送、可能是因为收到了一些扫描请求。

    在本实验中、有一次我从广播变为连接、扫描请求计数器仍然在连接状态下递增。 当我使用监听器进行检查时、在连接后仍然发送了 ADV_IND。


    连接后是否可以发送广播的数据?
    (我假设在连接后不发送广播数据。)

    使用的软件是“simple_peripheral",“,SDK、SDK 是“SimpleLink v8.30.1“。

    此致。

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

    您好!

    您可以在 SysConfig 中定义外设的最大连接数量。

    为了允许多个设备连接到外设、即使连接了一个设备、外设也继续广播。 我假设 BLE 栈在所有连接填满后停止广播。 如果我错了并且它不会自动禁用广播、您可以通过函数 GapAdv_disable 和 GapAdv_enable 手动禁用广播并开始广播

    此致、
    Maxence

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

    您好!

    感谢您的答复

    >为了允许多个设备连接到外设、即使连接了一个设备、外设仍继续广播。

    您提到了“允许多个设备连接到外设“、但根据 BLE 规范、这是否可行? 还是 TI 的专有特性?

    > 如果我错了,它不会自动禁用广播,您可以通过函数 GapAdv_disable 和 GapAdv_enable 手动禁用广播并开始广播

    关于建立连接后停止广播、是否正确了解在 LINK_RESTABLE 等事件中调用 GapAdv_disable 函数来禁用广播、然后在 LINK_TERMINATE 等事件中调用 GapAdv_ENABLE 函数来重新启用广播?

    最好的考虑。

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

    您好!  

    BLE 规范支持将外设连接到多个集中器。 更多的连接将意味着更多的 RAM 使用、因为其他连接的中心需要额外的数据、但这不是 TI 特定的数据。

    关于你的假设,你是完全正确的! 下面是来自外设示例的代码片段(默认程序中的第 1121 行):

      if ((numActive < MAX_NUM_BLE_CONNS) && (autoConnect == AUTOCONNECT_DISABLE))
      {
        // Start advertising since there is room for more connections
        GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);
        GapAdv_enable(advHandleLongRange, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);
      }
      else
      {
        // Stop advertising since there is no room for more connections
        GapAdv_disable(advHandleLongRange);
        GapAdv_disable(advHandleLegacy);
      }

     接收到 GAP_LINK_INSTABLE_EVENT 后、代码将检查它是否应继续广播。 如果活动连接的数量低于 BLE 连接的最大数量(这是正确的,因为默认情况下最多有 8 个连接)并且 AutoConnect 变量设置为 AutoConnect_disable(在软件中默认也是如此,但您可以更改第 317 行)。

    在建立 1 个连接后禁用广播的解决方案是修改代码的这一部分、或在 SysConfig 中将最大连接数减少到 1。

    此致、
    Maxence  

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

    您好!

    感谢您的答复。

    我在 SYSCFG 中将它设置为 1、监听器会确认在建立连接后不会发送 ADV_IND。

    非常感谢。 它帮了我很多!

    此致。