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.

[参考译文] CCS/CC2650:BLE 组合角色(外设和观测器)在 CC2650上不工作

Guru**** 2551110 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/906137/ccs-cc2650-ble-combo-role-peripheral-and-observer-not-working-on-cc2650

器件型号:CC2650

工具/软件:Code Composer Studio

您好!

我正在尝试向 BLE 栈2.2.4中的 simple_np 示例添加扫描支持。 已使用 host_config=peripheral_CFG+obier_CFG 重建堆栈、并且我已将来自 github.com/.../peripheral_observer.c 的外设观测器组合角色配置文件添加 到应用程序中、并在项目中定义了 PLUS_observer。

我发现添加 GAP_PROFILE_观测 器(上面链接的第886行)会导致广播完全中断(器件正常运行并通过 UNPI 进行通信、但从未发生"广播启动"事件。 如果在 gapRole_profileRole 中仅设置了 GAP_PROFILE_PERPeripheral、则一切都正常、但扫描当然不起作用。

论坛上有许多未解决的帖子(或尽管尚未解决)、来自其他遇到类似问题的人员、他们在组合角色支持方面遇到类似问题。 这是否可以实际工作? 硬件是我的客户的定制板、但我在 Sensortag/DevPack 上进行测试。

此致

Mike

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

    尊敬的 Mike:

    您是否了解过这些主题?

    https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/222651

    https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/p/609105/2243803

    我希望这将有所帮助、

    此致、

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

    您好、Cl é ment、

    这两个线程描述了我所看到的内容、这两个线程似乎都没有解决。 第一个线程讨论如何确保栈的正确 host_config。 在本例中、我已经将此设置为 -DHOST_CONFIG=PERIODIESS_CFG+观测 器_CFG。 在 peripheral_obiler.c 中、我还将设置 gapRole_profileRole = GAP_PROFILE_PERipheral | GAP_PROFILE_observer。 这一个变化打破了广告-我不再收到一个事件来说广告已经开始。 如果我删除 GAP_PROFILE_观测 器、则即使我仍在使用组合角色堆栈、广播也会再次起作用、因此问题似乎与在 GAP_DeviceInit 调用中请求两个角色有关。

    我还观察到第二个线程中描述的情况、即在调用 GAPObserverRole_StartDiscovery 后、未接收到发现事件。 我可以确认附近是否有经过 BLE Scanner 手机应用验证的广播设备。

    因此、这两个线程似乎都是相关的、但它们未解析且没有特别有用。

    Mike

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

    尊敬的 Mike:

    您能为我验证以下内容吗:

    -在程序执行的不同步骤中,静态变量 gapRole_state 的值是什么? 当您开始广播时、gapRole_state 是否会相应地发生变化? gapRole_state 是否报告错误?

    此致、

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

    您好、Cl é ment、

    我能够使它正常工作。 我将尝试总结为其他人的利益所需的关键变化:

    为了支持组合角色"host_config=peripheral_CFG+观测 器_CFG"、已在堆栈的 build_config.opt 中定义。 但是、我发现由于堆栈作为预编译的二进制 blob 提供、因此在此文件中只能定义某些选项组合。 在我看来、一组不受支持的选项至少会导致堆栈构建过程无提示失败、因此堆栈实际上不会被重建。 要选择组合角色、我还必须取消定义 BLE_V42_feature=secure_conns_CFG 和 ATT_Delayed_Req。 我怀疑后一种变化可能会对 simple_np 应用产生一些不利影响、但对于我当前的要求、广播和扫描已经足够、这些似乎可以正常工作。

    其次、在 simple_np 应用程序中、对 GAP_StartDevice 的调用发生较晚(在开始广播的请求中)。 在为外设和观测器角色设置堆栈参数后、将其移至 INIT 函数。

    还需要进行各种其他更改、主要围绕堆栈和 simple_np 任务之间的消息传递进行更改、但这主要是复制其他 SNP 命令所使用的相同方法的情况。

    Mike