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.

[参考译文] CC2530:GenericApp 不能#39;t leave

Guru**** 2618835 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/691220/cc2530-genericapp-doesn-t-leave

器件型号:CC2530
Thread 中讨论的其他器件:Z-stack

您好!

我已经从 Z-Stack 3测试了 GenericApp。 我将终端设备连接到协调器。 当协调器要求终端设备离开时、终端设备不执行任何操作、仍然向协调器发出数据请求。 我已经在 Ubiqua 中检查了这一点。 为什么会发生这种情况?如何解决?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否在编译选项中定义了 MT_ZDO_Mgmt?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否 但我尝试了它、它没有什么不同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我重新检查了日志、发现我的终端设备只是在其路由器上轮询、而不是协调器。 路由器未将轮询转发给协调人。 当我断开路由器的电源时、终端设备未连接到协调器。 因此、我假设终端设备实际上已经离开了协调器。 但它如何在路由器上仍进行轮询?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我无法理解您的问题。 这些与休假申请有何关系。 您能详细说明吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的终端设备连接到路由器和协调器。 我的协调器要求我的设备离开。 我的设备不会轮询协调器、但仍会轮询路由器。 为什么会这样呢?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果路由器是您的终端设备的父节点,则终端设备只轮询其父节点是正确的。这是 Zigbee 协议的基本内容,我认为这一点没有任何问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。 想知道、如果终端设备已经离开网络、为什么需要继续轮询路由器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果器件离开、则不应进行极化。 检查您是否在离开请求中将重新加入标记设置为 false。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 GenericApp 示例中、此重加入标志在哪里?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何发送休假申请?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    GenericApp 的默认工作方式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我知道、GenericApp deos 默认不会保留请求。 如果您没有从应用程序代码发送休假申请、则意味着您不会离开。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用 SmartThings 集线器向我的终端设备(使用 GenericApp)发送保留请求。 很抱歉造成混淆。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用监听器检查是否将重新加入标志设置为 true。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在监听器中、这种"重新加入"标志应该是什么样的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否将监听器日志与 SmartThings 集线器发出的休假请求连接起来?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    器件的 NWK ID 为0x6EB0。 父路由器为0x77BF。 休假请求位于第466行。

    e2e.ti.com/.../7024.log.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在第477行、路由器0x77BF 已向设备0x6EB0发送了保留请求、但设备0x6EB0没有响应。 您是否定义了 MT_ZDO_MGMT 以在设备中启用 ZDO_MGMT_LEW_RESPONSE?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我现在已经定义了它、但我看不到器件的保留响应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试在 ZDO_ProcessMgmtLeaveReq 中设置断点、以查看 GW 发送 leave 请求时是否命中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我无法设置断点来查看是否已发送休假请求、因为我正在使用市场品牌中心(协调器)。 我只能在终端设备上设置断点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因为您的器件没有响应、所以您应该在器件上设置断点以检查它是否不是集线器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您告诉我在"ZDO_ProcessMgmtLeaveReq"上设置一个断点。 为什么需要检查此项? 协调器是否仅执行此操作? 这是我的困惑。

    是否要求我为终端器件在"ZDO_ProcessMgmtLeaveReq"上设置断点?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将离开请求从协调器发送到设备、因此它是处理该请求的设备。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否想对我上一篇文章中的问题给出准确的答案? 我有点困惑。 如果您回答这些问题、我认为我可以更好地理解。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否要求我为终端器件在"ZDO_ProcessMgmtLeaveReq"上设置断点? -->是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我测试过。 断点被命中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果在 ZDO_ProcessMgmtLeaveReq 中的"ZDP_MgmtLeaveRsp( inMsg->TransSeq,&(inMsg->srcAddr)、status、false );"上设置另一个断点,它是否命中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否 我确实注意到、在这个代码之后、程序退出 ZDO_ProcessMgmtLeaveReq。

    if ((ZG_build_ENDDEVICE_TYPE)&&(ZG_DEVICE_ENDDEVICE_TYPE))

    //只有父设备可以请求离开,否则将以静默方式丢弃帧
    if (inMsg->srcAddr.addr.shortAddr!=_NIB.nwkCoordAddress)

    返回;

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

    您建议我先检查一下哪里?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试注释掉以下整个代码以再次测试。

    if ((ZG_build_ENDDEVICE_TYPE)&&(ZG_DEVICE_ENDDEVICE_TYPE))

    //只有父设备可以请求离开,否则将以静默方式丢弃帧
    if (inMsg->srcAddr.addr.shortAddr!=_NIB.nwkCoordAddress)

    返回;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它的工作原理。 我现在看到一个休假响应。 首先、该代码的重点是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它被添加到 Z-Stack 3.0.1中、我想这是由于新的规范。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否知道它的用途是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否 我提出 了一个新问题 来提出这个问题。

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

    Zigbee 3.0规范的新部分包括 ZED、它仅接受来自其父设备 processors.wiki.ti.com/.../What's_New_in_ZigBee_3.0的休假请求命令

    编辑:此主题的原始问题已得到解决,因此将关闭帖子,任何进一步的对话将在 YK 的新帖子中继续。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    虽然这是由新的 Zigbee 规范定义的,但应用根本没有意义。 这意味着 ZC 无法将管理休假发送到连接到 ZR 的 ZED。 您是否知道 SPEC 为什么要进行此类修改?