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:OAD 之后属性表中缺少中心地址解析特性

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1357846/cc2651r3-missing-central-address-resolution-characteristics-in-attribute-table-after-oad

器件型号:CC2651R3
主题中讨论的其他器件:SysConfig

您好!

在使用  simplelink_cc13xx_cc26xx_sdk_6_20_00_29的项目中、我们实现了服务更改指示触发器、并且我们观察到了固件升级后发生触发的一些问题。

然后、在检查根本原因时、我发现 缺少特性中心地址解析(0x2AA6)、这实际上会更改属性表中后续特性的值句柄。

我想知道这种新特性如何以及为什么取决于服务更改指示以及如何消除它?

谢谢你。

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

    您好!

    感谢您与我们联系。 您能否说明中观察到此行为的示例? 此外、您能否检查最新 SDK 版本中是否可以观察到此行为?

    此致、

    1月

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

    大家好、Jan、

    感谢您的立即响应。

    我们使用 simple_peripheral 示例项目、其中我们已根据要求更改了应用级。

    我可以在最新的 SDK 版本中检查它。

    同时、我尝试读取0x2AA6特性、观察到其响应" 此器件不支持地址分辨率"(下面屏幕截图中的最后一行)

    您还可以说明下一页、不清楚、此处可选或 C3意味着什么、对于 SimplePeripheral 项目、该选项是否可选?

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

    您好!

    我相信 O 意味着完全可选。 SDK 实现了链路层隐私性、因此也包含在其中。 您是否能够使用 BLE 监听器(例如 Ellysis)? 我想看看器件实际通过无线方式读数是什么。 请在您有机会测试最新的 SDK 时告诉我。

    此致、

    1月

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

    大家好、Jan、

    再说一次、我将在不尝试建议的选项的情况下回来。

    但我有更多的证据导致了问题的根源。

    我发现问题在于 TI 团队共享的 gapgattserver.c 文件、其中禁用了中心地址解析字符。  

    实际上、gapgattserver.c 文件是在堆栈中预编译的、但由于通用访问器件名称长度存在限制、因此根据我们收到的请求、我们将该文件作为临时解决方案。 请在此处了解更多详细信息 CC2651R3:通用访问服务中的器件名称特征长度限制为21?? -蓝牙论坛- BluetoothRegistered︎ 支持论坛- TI E2E 支持论坛

    现在我请你告诉我:

    1.在更新的 SDK (最近版本)中、是否修改了 gapgattserver.c 文件以消除 器件长度到20字节的限制?

    2.如果已更新 SDK 中的 gapgattserver.c 也具有  禁用中央地址解析字符。

       答 :如果是,那么当值句柄发生变化时,我们现在该如何处理服务更改指示的通用访问特性位置的变化?

       b.如果不是、请告诉 我为什么 在与我们共享的 gapgattserver.c 文件中禁用中心地址解析字符?

    谢谢你。

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

    您好!

    我已经验证过、最新的 SDK 未进行修改、以消除限制。 我认为在另一个主题中提交的 TT 提交得太迟、无法将其添加到 SDK 版本中。 我认为其他主题中概述的相同解决方案(通过电子邮件提供文件)应该可以解决该问题。 您能否联系您的 TI 代表让他们与我联系? 我将能够通过电子邮件共享该文件。

    此致、

    1月

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

    大家好、Jan、

    非常感谢。

    因此、如果我理解正确、您将多共享一个 gapgattserver.c 文件、其中启用了中心地址解析特性、或针对当前禁用的代码使用某种解决方案。

    是的,我肯定会写一封邮件与您联系,并带有票证链接。

    但是、我知道为什么汽车特性被禁用了吗?

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

    您好!

    是的、正确。 我不知道为什么这个现在是禁用的,但我可以看看它,并回到你。

    此致、

    1月

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

    大家好、Jan、

    感谢您共享 gapgattserver.c 文件。

    我把它和你之前分享的一个比较了,除了版权信息,两个看起来都一样。

    我再次验证了问题、看起来像:

    当我在不使用 gapgattserver.c 文件(gattserver.c 在堆栈库中预编译)的情况下进行测试时、它会在 Generic Access Service 中显示 CAR 特性、但当我使用您共享的文件时、它不会在 Generic Access Service 中显示 CAR 特性。

    请再次检查这一点、如果我在本地使用而不是在堆栈库中预编译、请告诉我 gapgatserver.c 文件是否存在一些依赖关系。

    谢谢你。

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

    您好!

    明白了。 感谢您的测试。 我将仔细检查一下、然后再与您联系。

    此致、

    1月

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

    您好!

    我更深入地解释了一下。 根据规范、似乎只有中央设备具有汽车特征。

    因此、此项目中可能不存在该文件。

    此致、

    1月

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

    大家好、Jan、

    是的、我同意、但是如果您在上面看到我的屏幕截图、它提到了可选内容、

    我不确定如果我使用预编译的堆栈库、它如何显示该 CAR 字符?

    如果可以的话、您可以使用 simpleperipheral 项目自行测试、请参阅以下两种情况:

    1.在 include 文件夹中使用 gapgattservr.c 文件。

    2.不使用。

    提前感谢。

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

    您好!

    我懂了。 我现在没有 R3板。 我明天会尝试找一个,明天也会再找你。

    此致、

    1月

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

    您好!

    我可以对此进行测试。 我使用6.20 SDK 进行测试、并使用了 CC2642R1 (无法获取 R3、但我不希望看到任何差异)。

    1.没有源文件

    2.使用源文件:

    所以、看来在我的最后有了源文件、从 simple_peripheral 项目中移除了 car。

    此致、

    1月

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

    大家好、Jan、

    这正是我所观察到的,这是预期的吗? 我想知道这怎么会发生。 有什么想法吗?

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

    您好!

    感谢您的确认。 我仔细研究了这种行为、我想我看到发生了什么。 在源代码文件中、仅当定义了 central_CFG 符号时才会定义 CAR 特性。 CFG 符号在.opt 文件(通过 SysConfig 生成)中定义。 当以外设角色运行时、不定义 CENTRAL_CFG 符号。 因此、通过将源文件导入到工程中、然后当工程编译并发现 central_CFG 符号不存在时、将跳过添加 CAR 特性的代码。 我猜是、在 SDK 构建过程中编译 SDK 源文件时、会为该特定文件定义 central_CFG 符号、这就是我们看到它的原因。

    我将向研发部门提交一个 TT、以便他们查看并解决问题。

    此致、

    1月

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

    大家好、Jan、

    感谢您的深入介绍并验证了行为。

    确切地说,目前我已经 创建了一个临时解决方案,强制注释掉 central_CFG 用于测试目的。

    提前感谢您向 R&D 提交 TT。

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

    您好!

    没问题! 感谢您报告此情况并帮助我进行调试。 如果您遇到与此相关的任何其他问题、请随时回复此主题、我将非常乐意提供帮助。

    此致、

    1月