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.

[参考译文] CC2642R:CC2642 GATT_Indication 返回 0x16 (blePending)

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1596498/cc2642r-cc2642-gatt_indication-return-0x16-blepending

器件型号: CC2642R

您好:

我一直在使用贵公司的 CC2642。   我目前面临的问题已经很久没有解决了、希望咨询您。  

SDK 版本:simplelink_cc13xx_cc26xx_sdk_7_41_00_17  

问题:

CC2642 GATT_Indication 返回 0x16 (blePending)

当同时连接多部手机(包括 iPhone ,如 iPhone 12 )时,如果 iPhone 12 关闭应用并断开蓝牙连接,则未断开连接的信道的数据 GATT_Indication 可能偶尔报告错误 0x16。  再次尝试 GATT_Indication 后、仍然出现错误。  最后、我只能重置蓝牙。  

从我的日志中、iPhone 12 的断开连接错误代码为 0x13、表示手机已断开连接。   随后通过其他连接进行的数据传输报告了 0x16 错误。  

您能帮助我分析一下问题是什么吗?   当索引为 0 的器件未复位或断开连接时、是否有办法恢复正常的数据传输?  

连接后断开 iPhone 时经常会出现问题。  

image.png

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

    您好、

    感谢您联系我们。 这肯定是意料之外的行为。 您是否能够在最新的 SDK 上测试它、因为这有助于进行调试?

    此致、

    1 月

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

    您好、

    目前、市场上已经有大量用户担心如果突然更新 SDK 会出现问题。

    此问题主要发生在 iphone 断开连接时。 当 Android 手机断开连接时,几乎不会发生这种情况。

    我在论坛上看到了类似的问题。 我没有找到恢复它的方法。 除了重置之外、还有其他方法可以恢复它吗?  

    谢谢!

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

    您好、

    我懂了。 感谢您提供更多详细信息。 您能否分享有关重现此行为的 iPhone 的一些详细信息? 是否仅在任何 iOS 版本或特定版本上发生? 哪些型号的 iPhone?

    此致、

    1 月

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

    您好:

    我使用您的正式程序验证了它,它仍然可以重现问题。  

    复制步骤如下:

    1、CCS 导入 simple_peripheral_CC26X2R1 例程、并进行以下简单的代码修改  

    2、编译代码并将其刻录到开发板上。 通过串行端口查看操作日志。  

    3、将两部手机连接到开发板 (CC2642)、两部手机均安装 nrf connect。 首先连接 Android 手机、然后连接 iPhone。 在两部电话上启用通知、您将看到一秒钟内收到一个数据包。  

    4、保持你的 Android 手机连接并反复操作你的 iPhone(从 cc2642 收到数据后,杀死 nrf 应用程序,并继续这样做),你可以重现这个问题。

    5、我用于这个测试的 iPhone 是一个 iPhone 15。 此问题仅在 iphone 上出现 。  

    请您重现一下吗? 它很容易重现。

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

    您好、

    感谢您分享这些详细信息。 这是非常有帮助的。 我将尝试获取所需数量的 iOS 和 Android 设备。 同时、您是否可以使用 BLE 监听器? 如果是、那么您能否记录一个示例行为的监听器日志?

    此致、

    1 月

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

    您好、

    我没有专业的 BLE 监听器。

    如果您根据我的步骤修改 SDK 例程、请首先连接 Android 手机(始终保持连接)、然后连接 iOS 手机、并重复操作第二部 iOS 手机以打开应用 — connect — 启用 Notify-Keil 应用、重现问题非常容易。

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

    您好、

    我懂了。 请给我一天左右的时间来收集运行此测试所需的电话、我会报告给您。

    此致、

    1 月

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

    您好、

    此问题需要两部手机。 Android 手机应首先连接并始终保持连接。 iPhone 应该连接到第二个。 然后重复操作连接-notify-终止应用程序。 在 iPhone 上继续重复此步骤。 它将重现大约 10 次。 如果遇到任何问题、您可以再次进行通信。  我们在 2023 年发现并报告了此问题、期待解决该问题。

    谢谢你。

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

    您好、

    是否可以重现此问题?  出现问题时是否有任何恢复方法?  

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

    您好、

    是否仍在分析这个问题?  

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

    您好:

    我为这里的延误道歉! 我将按照您的步骤复制问题并告诉您我找到的内容。 请预计明天将更新 (1-8-2026)。

    此致、

    Tarek D

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

    您好、王

    我尝试在我的最后复制此问题、但我无法。 我按照您的确切指示,从最新 SDK (8.31 ) 导入 simple_peripheral 示例,进行必要的代码更改,建立与 Android 设备的连接并启用通知,然后连接到 iphone(同时保持 Android 的连接)并持续连接,启用通知,然后终止应用程序。

    我也在使用运行 IOS 26.1 的 iPhone 15。

    如果有任何遗漏或您忘记在回复中包含的内容、请告诉我。

    此致、

    Tarek D

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

    你(们)好

    非常感谢您答复

    我使用 simplelink_cc13xx_cc26xx_sdk_7_41_00_17 的 simple_peripheral 例程重现了问题。

    我使用的 iPhone 15pro 与 IOS 26.2 ,但我可以在其他几个 iPhone 上复制它。  

    复制步骤:首先,使用 Android 手机上的 NRF 连接应用程序连接并启用通知。 然后、在 iPhone 上使用 NRF 连接应用程序进行连接并启用通知。 之后,将连接保存在 Android 手机上,并在 iPhone 上反复重试以下步骤:   

    (1) 打开 NRF 连接应用程序连接、

    (2) 启用通知、

    (3) 等待几秒钟、查看 cc2642 报告的数据、

    (4) 关闭 NRF 连接应用程序

    以下日志是从开发板开机到问题重现的完整日志  

    e2e.ti.com/.../Reproduction-log-.txt

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

    您好:

    我懂了。 抱歉、您提到此问题仅发生在较旧的 SDK 上、我错过了这一点。 请允许我有时间在我这边复制这个

    此致、

    Tarek D

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

    您好:

    您能重现我描述的问题吗?

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

    您好、

    我很抱歉耽误你的时间。 我设置 7.41 SDK 并按照步骤操作、然后能够在本地部分重现该行为。 我看到、在连接并订阅这两个器件后、如果 iOS 设备杀死了 nrf 应用(强制关闭该应用)、则会看到 0x16。 我注意到、在某些运行中、几秒钟后、通知将继续发送到 Android 设备、0x16 将替换为 0x00、在其他情况下、0x16 将一直保持、直到 Android 设备执行 GATT 操作(例如对另一个特性进行写入或读取)、之后它将按预期运行。

    我注意到、如果我们没有硬关闭 nrf 应用程序、而是断开连接、则问题不会发生。 鉴于在最新的 SDK 上根本不会发生该行为、那么这似乎是一个问题、已经通过 7.41 SDK 版本和最新版本之间的错误修复得到了解决。 我强烈建议迁移到最新的 SDK 以获得它提供的稳定性改进。

    此致、

    1 月

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

    您好:

    非常感谢您的支持。 5_30 版本的 SDK 中已存在此问题。 我们在 2024 年仅更新为最新的 7_41 版本。 该器件已应用于汽车。 目前市场上有 100,000 台器件。 考虑到更新 SDK 所涉及的风险、是否有任何措施来恢复 SDK? 当前所采取的措施是将其复位。  还有其他更好的方法吗? 非常感谢。  

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

    您好、

    我认为、在这种情况下、如果 SDK 版本变更是不可接受的、那么进行看门狗复位将是最佳方法。

    此致、

    1 月