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.

[参考译文] 需要 ZigBee 自愈功能和持续发送消息方面的帮助

Guru**** 2460850 points
Other Parts Discussed in Thread: Z-STACK, CC2530

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1249399/need-help-with-zigbee-self-healing-and-sending-messages-continously

主题中讨论的其他器件:Z-stackCC2530

大家好、我使用的是 ztack v3、并且配置如下:

都在范围内。 当我关闭 zr1时,zr2不会向 ZC 发送消息,我正在检查邻居和相关列表以及路由器协调器。 这是所有器件都开启时的状态:

您可以看到、zc 和 zr1位于邻居列表中(zc = 32464、zr1 = 14785)、并且协调器为 zr1。 (忽略集中器、因为我尚未对该部分进行编程)。

现在、这是 zr1关闭时的情况。 当我将消息从 zr2发送到 zc 时、它不会损坏。 (当 zr1打开时、它会正常工作)。 所有器件都可以相互检测。

此外、如何确定消息采用的路由? 我怎么能知道消息是直接发送给 邻居还是通过中介发送? (我需要此文件用于红色结构数据分析仪、例如设备之间的 RSSI)。  

我的另一个问题是,当我尝试发送消息在行我的程序或它被卡住或它重置(这是随机的)(如果我等待一段时间,这不会发生)。 在发送消息之前,我找不到要检查的标志。 在知道我可以发送消息之前、某个人可以将我指向要检查的.h、结构或标志吗? 我不想使用计时器、我更喜欢检查标志

就这些。

谢谢你。

尼科

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

    您好、Nico、

    请提供更多背景信息以获得最佳支持。  您使用的是哪些 TI Zigbee 器件和软件解决方案(提供版本)?  是否  设置了监听器器件来查看无线数据包?  您是否已经阅读过 Z-Stack 文档 (特别是用户指南和 API 指南)?  

    如果 ZC 确实是 ZR2的邻居,那么 ZR2可以强制网络路由请求 Zstackapi_DevNwkRouteReq () 接收来自 ZC 的响应并更新其路由表。  或者、它将在 NWK_ROUT_AGE_LIMIT 时间 NWK_LINK_STATUS_PERIOD 秒后自动修复。   

    如果您超出了 Z-Stack 数据包缓冲区、则应等待前一条消息发送出去、然后再排队等待下一条消息。  您可以参考 端到端确认 、其中 处理 zstackmsg_Cmdids_AF_DATA_CONFIRM_IND 而不设置 AF_ACK_REQUEST。

    此致、
    瑞安

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

    CHIP CC2530、z-stack 3.0.2、 IAR 8051 v 10.30.1、我没有设置监听器。 我没有开始这个开发、我正在尝试实施一种方法来分析红色连接、因为我们遇到了很多断开连接的问题、这可能是由于 RSSI 不良造成的。 我使用移动网络 和编程命令创建设备、以便从网络中的设备获取表格和 RSSI、因此我们可以在派遣技术人员到现场之前对其进行分析。

    我阅读的文档是:  Z-Stack 3.0开发人员指南和 Z-Stack 3.0示例应用用户指南。

    协调器取自: _NIB.nwkCoordAddress,邻居取自: Neighborhood Table[I].Neighborhood;关联取自 AssociatedDevList[I].shortAddr 。

    协调器和路由是保存在静态内存中还是保存在易失性内存中?  

    我想我误解了什么? 我觉得当一个设备出现在邻居和相关的表,通信是直接的,它不通过协调器. 还是我错了? 是否有办法使 交流直接?

    我会尝试这个  Zstackapi_DevNwkRouteReq () . 并在获得结果时进行注释。 是否有方法访问路由表?  

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

    路由 表在电源复位期间将丢失、可以使用 rtg.h 中列出的函数访问、 例如 RTG_GetRtgSrcEntry。  邻居采取"最佳路由"策略, 如果 ZR2 认为它是最佳路由 或尚未更新其路由表,则它将通过 ZR1路由以向另一个邻居(ZC)发送消息。  您可以手动触发路由维护(RTG_RouteMaintanence、 Zstackapi_DevNwkCheckRouteReq ()))、将邻居表 的大小减小为1、广播消息或改用 ZED (因为它只能向父节点报告)。  无法强制加入的设备直接向网络中的另一个节点单播。

    此致、
    瑞安