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.

[参考译文] CC2541:某些 Android 手机上的 gaprole_sendupdatepparam 失败。

Guru**** 2587245 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/593372/cc2541-gaprole_sendupdateparam-fail-on-some-android-phone

器件型号:CC2541

我的设备在 iPhone 和某些 Android 手机上工作正常。

在 指定条件下、它通过 gaprole_sendupdatepparam 更改连接参数。

但对于某些 Android 手机、 gaprole_sendupdatepparam 不起作用。

由数据包监听器验证:

Android 版本:4.4.2、6.0、7.0失败

BT 堆栈版本:1.4.1、1.4.2

PS:

我想知道 为什么*_init 方法中的 GAPRole_SetParameter 无效、

gaprole_sendupdateparam 使用 GAPRole_SetParameter 调用中的相同参数、

但连接参数在 gaprole_sendupdataepparam 调用(有时)后发生了变化。

感谢您的帮助、我为此奋斗了一周。

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

    如果没有监听器文件、很难提供最终答案。 您可能已经注意到、与 iOS 不同、Android 中没有发布可接受连接参数的 Android 标准。 您将需要测试不同的参数、以查找器件可接受的设置以及您想要支持的所需连接参数。

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

    谢谢。

    问题是 gaprole_sendupdatepparam 根本不发送任何数据包。

    是否有某种规则阻止它、或者无论电话是否接受它、它都应该发送数据包?  

    下面是一个好例子:

    e2e.ti.com/.../good.psd

    以下是错误:

    e2e.ti.com/.../bad.psd

    gaprole_sendupdatepparam 发送的处于良好状态的数据包6897,它在不良情况下消失。

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

    您能否通过 CC 调试器确认 GAP_UpdateLinkParamReq 是否已命中? 此外、请确保 BLE wiki 上列出的与 conn param 更新相关的已知问题不是一个因素。

    祝你一切顺利

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

    [引用 user="jxs"]

    此外、请确保 BLE wiki 上列出的与 conn param 更新相关的已知问题不是一个因素。

    [/报价]

    我被检查   了、然后    

    ,但未找到与 conn param 更新相关的项目。

    是否要为我提供链接?

    非常感谢。

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

    您好、Felix、

    很抱歉耽误你的时间。 该限制似乎未发布、但已添加:

      如果请求的连接间隔(CI)最小/最大范围不包含当前 CI 的倍数范围值、则 CC254x 的 BLE 从站堆栈将不会处理通过 GAP_UpdateLinkParamReq 发起的从站 L2CAP 连接参数更新请求。 解决方法是让从机请求包含当前 CI 的倍数的最小/最大 CI 范围。 例如、如果当前 CI 为11.25ms、则请求范围应最小= 7.5ms 至最大= X、其中 X >= 22.5ms (2 x 11.25ms)。

    我查看了您的好与坏嗅探器(PSD)文件。 您请求的最小/最大 CI 范围为378.75ms - 398.75ms。 在良好的捕获中、电流 CI 为18.75ms、因此20 x CI 的倍数落在您的最小/最大范围内。 在坏情况下、当前 CI 为50ms、在最小/最大范围内没有多个。 我想、如果您将最大值更改为400ms (320)、您应该可以。

    祝你一切顺利