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.

[参考译文] CC2540:即使在终止到本地器件的链接后、也会进入 BleAlreadyInRequestedMode

Guru**** 2560150 points
Other Parts Discussed in Thread: CC2540

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/639636/cc2540-blealreadyinrequestedmode-even-after-terminating-link-to-local-device

器件型号:CC2540

您好!

我目前正在使用 USB 软件狗和 CC2540开发.NET 应用程序(BT-Stack 为1.4.1)。 我通过 HCI 访问固件。

我的问题是、在接收到 GAP_DeviceDiscovery 事件(0x0601)后、我尝试逐个建立到检测到的器件的链接。 现在、有时我在 尝试建立链路时将 BleAlreadyInRequestedMode 设置为状态。 当我获得此状态时、我使用 HCI_EXT_DisconnectImmedCmd 终止到本地器件的链接、然后尝试重新连接。 但结果是相同的。

仅当我从 PC 上移除转换器后、重新插入转换器并重新启动应用程序、错误消失。  

那么、我的问题是:是否可以执行类似的重置、例如通过 HCI 移除和插入软件狗?

此致、

弗兰克

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

    如果连接未建立(即未分配 conn 句柄)、HCI_EXT_DisconnectImmedCmd 将不会有太大帮助。 您可以使用 GAP_TerminateLinkRequest 通过 connHandle 0xFFFE 取消任何未完成的连接请求。

    除此之外、在执行 HCI_Reset 以及 GAP_DeviceInit 之后、应重新初始化堆栈。

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

    您好、JXS、

    我已经使用句柄0xFFFE 尝试了 GAP_TerminateLinkRequest。 只有在该操作不起作用后、我才切换到 HCI_EXT_DisconnectImmed。

    HCI_Reset 的结构是什么? 在文档中、我只能找到 HCI_EXT_ResetSystemCmd (0xFC1D)、这会导致"Unkown HCI Command"。

    此致、

    弗兰克

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

    HCI 复位 Cmd 在 BT 核心规范中定义、请参阅主机控制器接口下的第2卷。

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

    谢谢你。 尝试执行此命令会得到"04 0E 04 01 03 0C 00"的答案。 将此与 HCI_EXT_ResetSystemCmd 的 BTools 应答进行比较、这似乎也是一个"取消拥有 HCI 命令"?!
    但是、在调用复位和 DeviceInit 时、我仍然会获得"BleAlreadyInRequestedMode"。 :-)
    但也许我在这方面的工作中已经打破了其他东西、所以我将尝试清理我的代码、然后尝试重现问题。
    我会回来报告。

    此致、
    弗兰克