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:连接参数更新请求问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1475297/cc2340r5-connection-parameter-update-request-issue

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

工具与软件:

您好!

我有智能外围设备。 我已经在 Android 手机中建立了 nrf 连接应用程序的连接,我想向中央应用程序发送 ble 通知。

在 SysConfig 中的外设配置下、我使用默认传递到应用作为连接更新参数请求。 使用该配置、如果我随后向中心设备发送通知、则会出现 GATT LMP 超时错误、从而导致无法断开连接。

如果我在 SysConfig 中将设置更改为接受全部、一切都会正常运行。 我不能理解到底发生了什么。 您能不能解释一下这些参数是如何工作的?

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

    问候 Satakshi、

    您可以通过三种可能的选项来处理作为外围设备的参数更新请求。 您可以选择无条件接受所有传入的参数更新请求(接受全部)、或者选择相反、即拒绝所有传入的参数更新请求(拒绝全部)。 第三个选项是将参数更新请求传递给应用程序。 然后、应用程序将负责处理传入请求、并根据该请求决定是接受还是拒绝参数更新请求。

    在 TI SDK 中 basic_ble 示例中的 app_connection.c 文件中可以看到有关如何实现该功能的示例。 在 Connection_Conn Handler()中、您可以找到 案例 BLEAPPUTIL_LINK_PARAM_UPDATE_REQ_EVENT . 在这里、您可以看到、例如、检查了传入请求的连接延迟、并在此基础上生成参数更新响应。


    当您报告发生 GATT LMP 超时时时、这可能是由于器件未收到响应而在充足的时间发送了更新请求。 您能否详细说明如何处理应用程序中传入的参数更新请求? 此外、您是否还可以提供相应的监听器日志以便更加深入地分析此主题?

    此致!
    Achyut Ray

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

    Achyut、您好!

    感谢您的讲解。 目前我正在使用 nrf 连接应用程序作为客户端在 oneplus Android 手机. 我觉得 Android 操作系统是以这样一种方式编写的断开正在发生. 所以我选择了接受全部并完全控制手机来决定连接参数。 这样它就正常工作了。

    目前、我没有方便的监听器设置、但会尝试共享日志。

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

    问候 Satakshi、

    当您选择"全部接受"时、外设无条件接受来自中央设备的传入参数更新请求、在这种情况下、是您的手机。 我似乎无法理解为什么外设对参数更新请求的处理导致了超时导致的断开连接。 出现这种情况的可能原因之一是外设在应用层中未处理传入参数更新请求、因此无法及时(或完全)向中央设备发送响应。

    为了能够进一步帮助您、我想索取以下信息:

    • 软件以及您要尝试实现的目标的说明。 此外、您能否告诉我您是否使用的是开箱即用的 TI 示例
    • 上述日志。 我对中央设备要求外设更新到的更新连接参数特别感兴趣。

    谢谢!
    此致!
    Achyut Ray