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.

[参考译文] CC2640R2F:频繁的 BLE 断开连接- Android 组允许+

Guru**** 2563960 points
Other Parts Discussed in Thread: CC2640R2F, BLE-STACK

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/588002/cc2640r2f-frequent-ble-disconnection---android-marshmallow

器件型号:CC2640R2F
Thread 中讨论的其他器件: BLE-STACK
问题:
Android 应用(GATT 客户端)和两 个 TI 板(CC2640R2F、GATT 服务器)之间的蓝牙连接不稳定。 当 Android 应用程序连接到两个板时、两个板的蓝牙连接状态会在连接和断开状态之间快速切换。 因此、服务发现过程受到影响、有时未发现 GATT 特征(GATT 服务为空)。 仅运行棉花糖(6.0+)及更高版本的 Android 设备出现问题。  
此问题也会出现在 Play 商店中提供的其他第三方应用程序上、例如在这些 Android 设备上运行的 BLE 扫描仪、sensorTag 和 nrf connect。
 
固件信息:
芯片:CC2640R2F
BLE 堆栈:CC2640R2 SDK 1.00.00.22 (也称为 BLE-STACK V3.0)
TI Code Composer Studio:CCS- 7.1.0.00016
适用于 CC13XX 的 TI-RTOS:3.01.01.19
C 编译器 for ARM:16.09.0.LTS
XDCTools:3.32.01.22
 
 在 Android 端尝试的修复:
在 Android 方面尝试了以下修复、但未成功。
  • 在连接成功事件和 GATT.discoverServices()请求之间设置了一个延时时间(最多尝试2000ms)。
  • 对于组强(6.0)以下和以上的器件、请使用单独的 device.gattConnect (...)方法。 棉花糖以上的设备需要 一个传输参数。  
  • 在 GATT 服务器之间切换连接、以确保在给定时间仅连接一台服务器。  
  • 为两台服务器创建了单独的 GATT 回调、并为涉及两台服务器的所有操作创建了单独的线程。
唯一成功的修复方法是仅将一台服务器连接到客户端。 要连接另一台服务器、需要重新打开该应用程序。 如果同时连接了另一个设备、则问题仍然存在。  
 
在固件方面尝试的修复:
根据 TI 论坛上以下帖子建议的修复、  对固件进行了更改并进行了测试。 他们也没有成功。  
 
 
 
收集的数据:
蓝牙监听器日志是从 Android 侧收集的、并已附加。
'btssnoop_HCI_SUCCESS.log'文件处理运行棉花糖(6.0.1)的 Android 设备(Samsung galaxy s7边缘)与仅一台服务器(净化器)之间的 BLE 连接成功。
'btssnoop_HCI_FAIL.log'文件处理同一 Android 设备和两台服务器(传感器和净化器)之间存在问题的 BLE 连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    +Omid

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

    这似乎是 Android 方面的问题。 我不认为更改 cc26x0器件上的固件会有所帮助。

    无线监听器也有助于隔离正在发生的情况。

    我们的专业知识在 TI BLE-Stack 中、本论坛中可能有其他人可以在 Android 方面为您提供帮助。 (或者可能在堆栈溢出时发布?)

    我会说给帖子更多时间。

    此致、
    反叛分子