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.

[参考译文] CC2652R7:将网状堆栈添加到中央/外设配置

Guru**** 2763595 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1288436/cc2652r7-adding-mesh-stack-to-central-peripheral-configuration

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

我正在尝试向 已经用作 BLE 外设的项目配置中添加网状代理客户端功能(即充当中央设备)。

作为我要扫描的网状代理客户端中央设备、连接到网状代理、并根据 UID1828网状服务特性发送和接收数据。

为了实现这一点、我曾尝试在 SysConfig 对话框中添加 Mesh 属性、但这会将设置 从"central/peripheral"更改为"peripheral"、因此这看起来不受支持。

我的下一个尝试是从 mesh 文件夹(在 ti 安装文件夹内)中添加必要的文件到我的项目中、 但很难只获得几个文件、因为它们都是具有大量依赖项/所需配置文件等的更大堆栈的一部分。

除此之外、网状网络堆栈似乎基于 Zephyr (而我的旧外设项目不是)。

那么,你如何建议我继续呢? 我需要同时充当中央设备和外设、并且仍然能够访问网状网络、至少能够满足网状协议的加密、分段等标准。

感谢任何帮助。

此致、

/奥拉

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

    您好、Ola、

    我建议查看 multi_role 示例( \examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\multi_role)、并将 simple_mesh_node 示例功能移植到它( \examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\simple_mesh_node)。

    我们还 在此处提供了有关 TI 蓝牙网状网络基础知识的培训材料、可能会对您有所帮助。

    希望它有所帮助、

    大卫。

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

    感谢您的答复。

    但是、据我所知、simple_mesh_node 示例处理静态配置的网状节点、而不是网状代理客户端。

    我明白、您的示例对于开发实际的网状节点很有用、但正如我尝试解释的、我是在开发网状代理客户端、而不是网状节点本身。

    我曾使用多角色示例同时启用中央行为和外设行为、但正如我所解释的、我不能对此进行定义、仍然使用网状堆栈。

    非常感谢任何其他帮助或指示。

    此致、

    /奥拉

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

    您好、Ola、

    可以实现外设+中央+网状中继、并且您必须将网状示例作为参考(基于外设+网状)并将外设部分修改为外设+中央部分。 这的确需要额外的努力来修改代码。

    关于配置的网状网络、我建议查看 这部分材料

    我仍在研究在此还可以考虑哪些其他途径。

    请告诉我是否有帮助。

    大卫。

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

    再次感谢您的努力。

    但是、在我的用例中、我要连接的 Mesh 节点已进行配置、因此配置不是问题。

    作为中央代理客户端、我确实需要访问网状堆栈、因为来自网状网络的代理组消息必须根据网状标准进行解密和取消分段。

    在我看来、访问 TI 网状网络堆栈的唯一方法是选中 SysConfig 中的 Mesh 复选框、但在我执行此操作时、BLE 器件角色已更改、不再具有我所需的中央角色。

    此外、在构建网状网络示例时、代码占用空间非常大、因此我不需要完整堆栈、而只需要加密/解密/分段。

    我非常了解网格机制、因此您真的不需要再发送任何链接来解释它。 网状网络配置文件 BLE 规范涵盖了这一切。

    此致、

    /奥拉

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

    您好、Ola、

    了解。

    目前、我们没有任何支持该实现的示例。

    但是、我们可以帮助您解决您在自行实施时可能遇到的特定问题。

    Br、

    大卫。

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

    非常感谢您提供一些帮助。

    我成功地隔离了许多所需的文件、以使客户端网格处理充分发挥作用、但我收到了许多构建警告、我似乎无法摆脱这些警告。

    从网格堆栈添加的文件:

    实用工具

    AES_CCM

    CMAC_MODE

    simplelink_crypto

    缓冲器

    加密

    此外、还添加了所需的 include 文件夹和以下定义集:
    CONFIG_BT_Mesh_PROXY
    CONFIG_BT_Mesh_subnet_count=2
    CONFIG_BT_MAX_CONN=2
    CONFIG_BT_MAX_PAITE=2
    CONFIG_BT_Mesh_MODE_GROUP_COUNT=2
    CONFIG_BT_Mesh_MODE_COUNT=1
    CONFIG_Atomic_Operations_BUILTIN
    CONFIG_BT_Mesh_TX_SEG_MAX=5
    BT_Mesh_TX_SDU_MAX=30
    Zephyr_kernel_Build
    配置 ARM

    我所使用的功能包括:
    BT_mesh_subnet_add

    BT_mesh_subnet_get

    BT_mesh_net_encode

    BT_mesh_net_decode

    BT_CCM_解密

    我将收到的构建警告:

    C:/ti/simplelink_cc13xx_cc26xx_sdk_6_41_00_17/source/ti/mesh/zephyr/include kernel.h:84:9:警告:'Z_tick_get'宏重新定义[- Wmacro-redefined]
    #define z_tick_get k_upuntime_get
    ^
    C:/ti/simplelink_cc13xx_cc26xx_sdk_6_41_00_17/source/ti/mesh/zephyr/include、sys_clock.h:200:9:注意:上一个定义在这里
    #define z_tick_get(0)

    非常感谢任何帮助。

    此致、

    /奥拉

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

    这一天,出现了一个新的相关问题。

    使用加密/解密网状文件效果很好、仅将 BLE 堆栈用作中央堆栈、但当也使用外设 BLE 角色时、BLE 堆栈似乎会损坏、至少如果它在使用加密机制后作为外设连接的话。

    工作场景如下:

    与外设应用程序绑定(作为外设角色)-有效。 对等地址每次都正确

    连接代理服务器(作为中心角色)-工作

    加密并发送白名单消息。 开始接收通知-有效

    无法正常工作的情况是:

    连接代理服务器(作为中心角色)-工作

    加密并发送白名单消息。 开始接收通知-有效

    与外设应用程序绑定(作为外设角色)-不起作用。

    当从连接检查对等地址时、它全部是乱码的数据、并在每次连接尝试时给出单独的地址。

    现在、如果我不再调用使用加密网状函数创建白名单消息的函数、我可以再次连接到中央设备和外设。

    因此、我怀疑 mesh 文件以某种方式破坏了 BLE 堆栈的执行上下文。

    有什么想法如何确定这一点? 我假设我缺少应该如何设置网格堆栈的一些重要属性。

    此致、

    /奥拉

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

    您好、Ola、

    对于第一个问题、您是否能够找到定义了#define z_tick_get 的文件? 在 sys_clock.h 和 kernel.h 中似乎有定义冲突。 您是否可以查找这些文件并查看是否在某些时候应该有#if ()来选择使用其中一个或另一个文件? 从而使两者不能构建在一起。

    您是否具有蓝牙监听器、可以更好地了解外设绑定过程中无线发生的情况?

    您能否指定您在何处/如何擦除白名单消息?

    一些您正在修改和认为可以提供更多提示的代码片段可能会有所帮助、如果可以共享的话。

    Br、

    大卫。

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

    您好、Ola、

    对于第一个问题、您是否能够找到定义了#define z_tick_get 的文件? 在 sys_clock.h 和 kernel.h 中似乎有定义冲突。 您是否可以查找这些文件并查看是否在某些时候应该有#if ()来选择使用其中一个或另一个文件? 从而使两者不能构建在一起。

    您是否具有蓝牙监听器、可以更好地了解外设绑定过程中无线发生的情况?

    您能否指定您在何处/如何擦除白名单消息?

    一些您正在修改和认为可以提供更多提示的代码片段可能会有所帮助、如果可以共享的话。

    Br、

    大卫。