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.

[参考译文] LAUNHXL-CC26X2R1:加入的 Zigbee 设备未显示在设备列表中。

Guru**** 2468460 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1084730/launchxl-cc26x2r1-joined-zigbee-device-not-show-on-device-list

部件号:LAUNHHXL-CC26X2R1
“线程:Z 堆栈”中讨论的其它部件

我使用 CC2652R1 LaunchPad 作为金色 Zed,它与 zed_tematuresensor (5_20_00_52) Build 闪存。

我下载的 Zigbee Linux Gateway 是 Zigbee_3_0_Linux_Gateway_1_0_1.ru。 我有两个 ZC 平台。 一个是 x86 PC 主机(本机构建)。 另一个是 ARM 平台(交叉构建)。

我可以使用 Zed 和 x86 PC 主机设置设备加入测试。 我可以在控制台上看到已加入的设备信息。

我使用 Zed 和 ARM 平台设置设备连接测试,但这不是很好。 尽管嗅探器数据包似乎正常,但控制台上未列出任何设备。

我添加了调试信息,并发现 nwkSrvAddDeviceTcInfoCB 将为 Zed 和 ARM 平台测试输入 NS_ADS_NO_RSP。

上述问题似乎与  https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/956527/cc2530-device-announcement-but-not-added-to-the-device-list---zigbee-linux-sensor-to-cloud_1-0-1/3537102?tisearch=e2e-sitesearch&keymatch=NS_ADS_NO_RSP#3537102有关

两个问题:

 1. NS_ADS_NO_RSP 问题是由移植还是平台/应用配置引起的? 如果不熟悉 Z-Stack,如何快速调试? 顺便说一句,我非常确定 x86 PC 主机和 ARM 平台的安全程度是相同的。

2.“nm_waiting”刻度  (7000 / 250) // 7秒是否为平台相关定义?

此致,

彼得。

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

    嗨 Peter,

    1.您需要调试 Nwk SRV 进程,从设备通知到要添加到数据库的设备信息。  您可以参考有效的 x86 PC 解决方案。

    2.它基于 OnBoard.h 中的计时器时钟定义

    // Timer clock and power-saving definitions
    #ifdef CPU8MHZ
    #define TICK_COUNT  125
    #define RETUNE_THRESHOLD 250  // 8 Mhz threshold for power saving algorithm
    #else
    #define TICK_COUNT  250
    #define RETUNE_THRESHOLD 500  // 16 Mhz threshold for power saving algorithm
    #endif
    #define TIMER_DECR_TIME    1  // 1ms - has to be matched with TC_OCC
    /* OSAL timer defines */
    #define TICK_TIME   1000   /* Timer per tick - in micro-sec */
    #if OSAL_TIMER_16_BIT == TRUE
    #define OSAL_TIMER  HAL_TIMER_3
    #else
    #define OSAL_TIMER  HAL_TIMER_1
    #endif

    此致,
    瑞安

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

    你好,瑞安,

    感谢您的反馈。

    在查看更多调试信息后,我发现在“NS_ADS_NO_RSP”阶段之前,系统行为似乎有异常症状。 我猜这种异常可能会引发稍后的“NS_ADS_NO_RSP”问题。 测试步骤很简单,就像:按允许从 UI 控制台加入一样。 调试日志的差异如下:

    对于 x86 PC 主机,我可以看到 ZStack_SYS_IDS__RPC_SYS_PROTOBUF CMD:116。 我可以在 ARM 主机上找到它。

    为了挖掘更多信息,我发现 zspbProcessEvent 没有收到任何用于 ARM 主机 测试的 SYS_EVENT_MSG。 详情如下:

    <<<正常案例消息日志>>>

    [11:01:11.437 117][Nwk_Mgr/LSTN] UNMSKBL:[EAP101] Nwk_Mgr_CMD_ID_T_Nwk_Set_permit_join_Req:(系统:18)
    [11:01:11.437 293][Z_STACE/LSTN] UNMSKBL:[EAP101] ZSTACK_CMD_IDS__ZDO_Mgmt_permit_join_Req:(系统:49,len=10)
    [11:01:11.437,323][Z_stack/LSTN] UNMSKBL:[EAP101] before call processZdoMgmtPermitJoinq (nwkaddr=fffc, duration =60
    [11:01:11.437 335][Z_STACE/LSTN] UNMSKBL:[EAP101]在 processZdoMgmtPermitJoinq 中调用(发送给自己)
    [11:01:11.441,539][Z_stack/LSTN] UNMSKBL:[EAP101]在 ZDP_MgmtPermitJoinq 中调用以发送 MT_ZDO_Mgmt_permit_join_Req
    [11:01:11.441,578][Z_stack/LSTN] UNMSKBL:[EAP101] ZNP_MISC sendNPIExpectDefaultStatusZNP:Subsys:5, cmdID:36, len:5.
    [11:01:11.445323][Z_STACE/LSTN] UNMSKBL:[EAP101]在 processZdoMgmtPermitJoinq 中调用(第二次发送)
    [11:01:11.445351][Z_STACE/LSTN] UNMSKBL:[EAP101]在 ZDP_MgmtPermitJoinq 中调用以发送 MT_ZDO_Mgmt_permit_join_Req
    [11:01:11.445361][Z_STACE/LSTN] UNMSKBL:[EAP101] ZNP_MISC sendNPIExpectDefaultStatusZNP:Subsys:5, cmdID:36, len:5.
    [11:01:11.487,140][Z_stack/main] UNMSKBL:[EAP101] zspbProcessEvent: sys_event_MSG...
    [11:01:11.487,181][Z_stack/main] UNMSKBL:[EAP101] zspbProcessEvent: ZDO_CB_MSG
    [11:01:11.487,224][Z_stack/main] UNMSKBL:[EAP101] zspbProcessEvent: sys_event_MSG...
    [11:01:11.487,236][Z_STAP/ MAY] UNMSKBL:[EAP101] zspbProcessEvent: ZDO_CB_MSG
    [11:01:11.487,366][Nwk_Mgr/HNDL] UNMSKBL:[EAP101] ZStack_SYS_IDS__RPC_SYS_PROTOBUF,CMD:116
    [11:01:11.487,398][Nwk_Mgr/HNDL] UNMSKBL:[EAP101] ZStack_SYS_IDS__RPC_SYS_PROTOBUF,CMD:116

    <<<正常案例消息日志>>>

    和  

    <<<异常病例消息日志>>>

    [02:58:04.092,248][Z_STACE/LSTN] UNMSKBL:[EAP101] ZNP_MISC sendNPIExpectDefaultStatusZNP:Subsys:1,cmdID:14,len:1.
    [02:58:06.599,327][Nwk_Mgr/LSTN] UNMSKBL:[EAP101] Nwk_Mgr_CMD_ID_T_Nwk_Set_permit_join_Req:(系统:18)
    [02:58:06.599,551][Z_STACE/LSTN] UNMSKBL:[EAP101] ZSTACK_CMD_IDS__ZDO_Mgmt_permit_join_Req:(系统:49,len=10)
    [02:58:06.599,613][Z_STACE/LSTN] UNMSKBL:[EAP101] before call processZdodMgmtPermitJoinq (nwkaddr=fffc,duration =60
    [02:58:06.599,650][Z_STAP/LSTN] UNMSKBL:[EAP101]在 processZdoMgmtPermitJoinq 中调用(发送给自己)
    [02:58:06.604,904][Z_STAP/LSTN] UNMSKBL:[EAP101]在 ZDP_MgmtPermitJoinq 中调用以发送 MT_ZDO_Mgmt_permit_join_Req
    [02:58:06.604,974][Z_STACE/LSTN] UNMSKBL:[EAP101] ZNP_MISC sendNPIExpectDefaultStatusZNP:Subsys:5, cmdID:36, len:5.
    [02:58:06.612,013][Z_STAP/LSTN] UNMSKBL:[EAP101]在 processZdoMgmtPermitJoinq 中调用(第二次发送)
    [02:58:06.612,060][Z_STAP/LSTN] UNMSKBL:[EAP101]在 ZDP_MgmtPermitJoinq 中调用以发送 MT_ZDO_Mgmt_permit_join_Req
    [02:58:06.612,096][Z_STAP/LSTN] UNMSKBL:[EAP101] ZNP_MISC sendNPIExpectDefaultStatusZNP:Subsys:5, cmdID:36, len:5.

    <<<异常病例消息日志>>>

    从我的移植步骤来看,两个步骤并不那么简单,可能是我认为的根本原因。 其中一个是在 ARM 主机环境中,“ pthread_keys_MAX”和“pthread_stack_min”的定义值小于(1/8) x86 PC 主机环境。 另一个是我无法使用(请参阅 :https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1079244/cc2652r-zigbee_3_0_linux_gateway-protobuf-c-compatible-issue-when-porting-to-arm-platform/3995416?tisearch=e2e-sitesearch&keymatch=%2520user%253A292329#3995416) TI 预构建的 libprotobuf-c 库。 我从源代码构建 libprotobuf-c 库  

    两个问题:

    1.我有什么解决问题的建议:“ 在 MT_ZDO_Mgmt_permit_join_Req 发出后,zspbProcessEvent 没有收到任何 SYS_EVENT_MSG”?  

    2.上述问题是否由编译的 libprotobuf-c 引起? 如果可能,它是否与 protobuf-c 源代码版本相关?

    此致,
    彼得。

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

    这个问题肯定与 protobuf-c 构建相关,我建议您使用与原始源代码中使用的版本接近的版本。  您需要进一步调试和解决出现的任何异常行为,如这些行为。  我没有任何关于在开箱即用的 Zigbee 网关主机解决方案测试的依赖性之外运行的建议。  请注意,BeagleBone Black 和 Raspberry Pi 是两个 ARM 平台,已确认工作正常。

    此致,
    瑞安

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

    你好,瑞安,

    谢谢,还有两个问题:

    1.如果“此问题肯定与 protobuf-c build 相关”,您能否举个例子来说明更多信息? 我想确保我朝着正确的方向前进,因为我不确定 protobuf-c 的运行情况以及为什么会影响系统行为。

    2.我以前曾搜索过 protobuf-c 内部版本信息,但只能在“快速入门指南”文档中找到该信息。但是,它没有告诉我详细信息。 您能否为 TI 的源代码构建步骤和特定于 TI Z-Stack Linux Gateway 使用的源代码版本提供 TI 有用的链接?

    此致,

    彼得。

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

    您可以从 Documents/Z-Stack Linux Gateway - Developer's Guide 和 Proto_files/Readme.txt 中找到有关 Protof.  Protubuf 用于在网关和网络管理器等模块之间发送消息。

    此致,
    瑞安

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

    我只是在这里指出,我要用 libprotobuf-c lib v1.3.1和 v1.2.1 (与 Readme.txt 提到的编译器相同)来编译 libprotobuf-c.a 等。 但测试失败。

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

      运行安装脚本时,您会看到哪些错误或警告?  如何修改 Makefiles 以补偿您的 ARM 主机架构?

    此致,
    瑞安

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

    你好,瑞安,

    1.下面对 setup.sh 的上次登录(已修改并重命名为 eap101_setup.sh)显示“OK”(确定)。

    make [1]:离开目录'/home/mc_chin/ti/Zigbe_3_0.eap101/source/projects/ZStack /linux/usbreset/project'

    软件包验证结果:
    错误:制造过程中出现13条警告
    diff /home/mc_Chen / ti/Zigbe_3_0.eap101/source/out / content.txt /home/mc_Chen / ti/Zigbe_3_0.eap101/source/out / expected_content.txt
    mv:目标“directory.tar”不是目录

    确定:已成功创建 eap101的运行时软件包

    成功:build_all 完成。
    输入预编译目录。
    应用程序/
    应用程序/main.bin
    杂项/
    MiSC/CC2531-GW-ZNP_39203.bin
    MiSC/OTA 样本图像/
    MiSC/OTA 采样_图像/5678-1234-0000BBBB.ZigBee
    MiSC/OTA 采样_图像/5678-1234-0000AAAA.ZigBee
    原生纤维/
    protobuf/libprotobuf-c.so.1.0.0
    服务器/
    服务器/网关_Srvr_eap101
    服务器/track_servers
    服务器/gateway_config.ini
    服务器/start_application
    服务器/sample_app_ota.cfg
    服务器/npI_lnx_eap101_server
    服务器/NWKMGR_Srvr_eap101
    服务器/config.ini
    服务器/网关_config.tlg
    服务器/ZLSZNP_eap101
    服务器/OTA 服务器_eap101
    服务器/NPI_Gateway.cfg
    服务器/nwkmgr_config.ini
    服务器/zigbeeHAgw
    工具/
    工具/gw_soc_fw_version_query.bin
    工具/usbreset.bin
    工具/sbl_tool.bin
    工具/SOC_RESET_HOLD
    工具/SOC_RESET_RELEASE
    成功:提取的二进制文件
    输入服务器/目录

    使应用程序成为 exe,复制 protobuf 文件

    成功:使服务器和应用程序可执行
    成功:使/tools/文件夹可执行

    ********** 设置成功! **********


    --- 入门提示-----

    导航到节点脚本==> CD 项目/节点

    启动 Linux Zigbee Gateway 和 Node.js Zigbee Local Gateway => sudo ./start_local.sh

    启动 Linux Zigbee Gateway 和 Node.js IBM Gateway => sudo ./start_ibm.sh

    仅启动 Linux Zigbee Gateway ==> sudo ./start_gateway.sh

    终止所有网关==> sudo ./end.sh

    -----

    2. Makefile 的更改部分如下(例如 zstackserverznp):

    COMPILo_flags_eap101 ="-O0 -Wall -Wno-unused - unused-but -set-variable $(include)$(定义)-include ./hal/hal_types.h -include f8wConfig.h -D__EAP101__-marm -D_linux_arm_arch___=7 -March =armv7-a"

    此致,

    彼得。

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

    感谢您的分享。  由于只有警告,因此很难从构建日志中收集任何进一步的信息。  正如我们一直在讨论的那样,ARM 主机和 protobuf 构建之间仍可能存在不一致,这会导致通信失败。  我对你的特定 ARM 主机了解不够,无法对编译标记提供进一步的评论。

    此致,
    瑞安