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.

[参考译文] CC2651R3:BLE 在数据传输过程中不会断开连接

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1185084/cc2651r3-ble-is-not-disconnecting-while-data-transfer-is-in-progress

器件型号:CC2651R3

尊敬的 TI:

我目前在 TI BLE SDK 5.40上工作。

根据我们的要求、我的器件以100ms 的间隔向 NRF 智能手机应用程序连续传输50字节的数据(通过指示模式)。

当我尝试从智能手机断开设备连接时,它会立即断开连接并重新连接(几毫秒内)。

我是否可以知道这种行为的原因?

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

    嘿、Ddnr、

    您能否提供此问题的监听器日志? 重新连接期间智能手机是否发送新的连接指示?

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

    尊敬的 Ammar:

    感谢您的即时响应。

    是的、可以在附加的日志中看到新的连接指示。  

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

    嘿、Ddnr、

    正在使用什么示例项目? 在这种情况下、智能手机是外设还是中央设备? 我不太熟悉您所附的日志、但阅读它时我很困惑、因为我会看到"从 xx-xx 接收到的指示"。 如果电话收到连接指示、则必须用作外围设备。

    请告诉我、您是否能够提供 上述场景的监听器捕获(使用 Ellisys/Frontline 监听器)。

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

    尊敬的 Ammar:

    我使用了 simple_peripheral 示例项目。 智能手机是这方面的核心。

    这是智能手机中 NRF 连接应用程序的日志。 "从 xx-xx 接收的指示"是以指示形式从外设接收到的数据。

    很抱歉、我在前一封邮件中有点困惑。

    我将尝试提供来自 NRF 应用程序或 Wireshark 监听器的日志。

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

    嘿、Ddnr、

    您是否能够使用 BTOOL 作为中央设备执行上述测试? 简而言之、我不会立即对这种行为进行解释、我想排除移动中心可能执行的任何操作。 如果可能、您还可以尝试其他电话吗?

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

    我尝试使用多个电话、但仍然看到相同的行为。

    我可以观察到、如果在 数据传输过程中断开连接(使用指示)、则程序根本不会在代码中进入 GAP_LINK_TERMINATED_EVENT。 (这就是我们看到立即重新连接的原因)。

    如何使用 BTOOL 进行测试? 我应该使用另一个中央设备、例如 CC2651R3 Launchpad?

    同时、如果我使用通知进行数据传输、它将按预期工作。 仅在指示模式下才会出现此问题。 我认为由于指示中涉及确认、GATT 层正忙于执行操作并延迟将控制权移交给 GAP。

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

    您好!

    感谢您确认其他电话的行为。

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1185084/cc2651r3-ble-is-not-disconnecting-while-data-transfer-is-in-progress/4467629 #4467629">如何使用 BTOOL 进行测试? 我应该使用另一个中央设备、例如 CC2651R3 Launchpad?[/quot]

    正确。 您将在 CC2651P3 LP 上刷写 host_test 示例项目、然后启动 BTOOL 应用程序并使用 COM 端口连接到该应用程序。  

    在我们 的 SimpleLink Academy 模块中、您可以找到有关使用 BTOOL 的更多指导、了解 BLE 基础知识、任务2

    [引用 userid="318303" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1185084/cc2651r3-ble-is-not-disconnecting-while-data-transfer-is-in-progress/4467629 #4467629"]我认为由于指示中涉及到确认,GATT 层正忙于执行操作并延迟将控制权移交给 GAP。

    我在这里同意、我可以尝试查看这里的预期流程、看看可能会发生什么情况。 如果 TI 电路板未接收断开连接数据包(即它不会触发 GAP_LINK_TERMINATED_EVENT)、它将继续发送排队的数据包。 有迹象表明、您正确的做法是、在发送任何其他内容之前会收到回复。

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

    我已经设置了 BTool、并尝试根据您提供的参考链接连接和查找所有 UUID。 谢谢。

    但是,如何在中央设备(BTool 中)中启用指示/通知,或者是否不需要显式启用它?

    毫无疑问、我将以1秒的间隔从外围设备持续向中央设备发送数据流、而在中央设备中、我可以看到数据传入了吗?

    建立连接后、请在此处找到 BTool 快照:

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

    嗨、ddnr、

    问得好。 在中央位置启用接收通知的最简单方法是将01:00写入 CCCD 以获取通知、或将02:00写入指示。 在上面的屏幕截图中、您将在句柄编号0x0023、UUID 0x2902"客户端特征配置"中找到这一点。 这样做后、外设可以开始发送数据。 当中央接收到数据时、您将在右侧看到日志窗口相应地进行更新、并打印接收到的消息。

    编辑:要写入 CCCD、请双击我指出的行。 将弹出一个窗口、允许您写入特征配置。

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

    谢谢 Ammar、我将检查这个问题、并返回给您。

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

    任何时候。 供参考 我将无法跟进、因此 我已将此帖子重新分配给我的同事、他将继续帮助您调试此帖子。

    我们期待着再次收到。