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.

[参考译文] CC2340R5-Q1:以中心角色自动连接到外设

Guru**** 2960560 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1650257/cc2340r5-q1-auto-connect-to-peripheral-in-central-role

器件型号: CC2340R5-Q1
主题: SysConfig 中讨论的其他器件

尊敬的团队:

我使用的是带有 simplelink_lowpower_f3_SDK_9_12_00_19 的 CC2340R53 芯片、有一个问题与我的器件处于中心角色时与绑定外设器件自动建立连接相关。 我的研究表明,使用 API GapInit_connect () 可以通过将对等地址参数作为 NULL 来实现这一点。 我在此处寻找更多详细信息。 我在 SDK 的 basic_ble 示例中的 app_central.c 或 app_menu.c 文件中看不到任何此类实现。

如果可能存在,请向我明确说明如何使用 GapInit_connect ()(或)与绑定的设备以中心角色实现自动连接。 如果可以使用 GapInit_connect() 实现自动连接、是否事先不需要 Gap Scan_Enable ()? 如果否、在启动自动 connect_Req 到绑定设备之前、GapInit_connect() 内部会使用什么默认扫描参数来扫描广播?

请提供详细答案。 非常感谢。

此致
Rahul

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

    Rahul、  

    您将始终需要扫描。 如果不扫描、您将永远看不到要连接的设备上的广播、因此设备将永远无法连接。  

    您可以使用 GapInit_connect () API 自动连接,但 API 中没有内部扫描。 应用程序将需要启用扫描以连接到设备。  

    我们用于一些内部项目的解决方案按广告主的姓名过滤广告报告。 因此、序列如下:GapScan_enable -> ScanEventHandler -> BLEAPPUTIL_ADV_REPORT Event -> Parse ADV Report for specific name -> Use GapInit_connect () 连接到特定设备。  

    谢谢、
    Isaac

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

    感谢您的解释。 我有一个与设置扫描间隔和窗口相关的后续查询。

    有一个来自扫描模块 Gap Scan_Set () 的 API。 我也可以通过 Gap Initiator 模块中的 Init_Set PhyParam () 看到另一种可能性。 它们之间有什么区别? 此外、如果我们使用 Scan module API 和 Initiator module API 将 Scan interval 和 Window 设置为新值、那么如果有任何正在运行的扫描、我们仍需要禁用该扫描、并启用新扫描以使新间隔和窗口生效。 我从文档中的 API 说明中读到、希望理解正确。 请确认。 谢谢。

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

    您好 Rahul、

    有一个来自扫描模块 Gap Scan_Set PhyParam () 的 API。 我也可以通过 Gap Initiator 模块中的 Init_Set PhyParam () 看到另一种可能性。 它们之间的区别是什么

    Gap PhyParam() 设置 Scan_Set 参数以仅用于扫描、而 GapInit 设置 PHY 参数以启动到特定外设的连接。

    如果我们使用扫描模块 API 和发起方模块 API 将扫描间隔和窗口设置为新值、我们仍然需要禁用扫描(如果有任何正在运行)、并为新间隔和窗口启用新扫描以使其生效

    没错

    此致、

    直到

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

    尊敬的 TIL:

    感谢您的答复。 这意味着我不必使用 Gap Init_Set PhyParam () 来设置新的扫描参数。 相反、我仍然可以继续运行提供 advreport 的扫描实例、并按照您的同事在上述答复中的建议启动连接请求。 请确认。

    但是,正如您提到的,使用 Gap Param.PhyParam Init_Set () 设置新的扫描参数以连接到特定的外围设备只是启用包含特定外围设备的白名单扫描。  这是我的理解。 那么在这种情况下,我是否仍然可以得到附近其他外围设备的 Adv 报告? 请解释 API Gap Init_Set PhyParam() 的功能行为。 谢谢。

    此致

    Rahul

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

    您好 Rahul、

    以下是《堆栈用户指南》中的一些上下文:

    [引用 userid=“698197“ url=“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1650257/cc2340r5-q1-auto-connect-to-peripheral-in-central-role/6395717 ]这意味着我不必使用 Gap Init_Set PhyParam () 来设置新的扫描参数。 相反、我仍然可以继续运行提供 advreport 的扫描实例、并按照您的同事在上述答复中的建议启动连接请求。 请确认。

    当您使用 GapInit_connect () API 时,您需要在某个点(例如在 sysconfig 中)指定 GapInit PHY 参数,因为 GapInit_connect () 也涉及扫描(见上面的摘录)。

    您不必“更新“PHY 参数,只需将它们作为参数传递给 GapInit_connect () API。 Isaac 没有在上面特别提到这一点,但它暗示了 GapInit_connect () 需要 GapInit PHY Params。

    使用 Gap PhyParam.PhyParam Init_Set () 设置新的扫描参数以连接到特定外围设备只是启用包含特定外围设备的白名单扫描。  这是我的理解。 那么在这种情况下,我是否仍然可以得到附近其他外围设备的 Adv 报告? 请说明 API Gap Init_Set PhyParam()
    的功能行为

    第一部分、是对的、我想说。 但不会、您不会得到其他外设的广播报告。 Gap PhyParam() 存储例如 Init_Set、扫描间隔和窗口的首选值。 当调用 GapInit_connect () 时,GapInit_connect () 读取存储的 PhyParams 以启动连接。

    此致、

    直到