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.

[参考译文] CC2650EMK:ZDO_JoinConfirmCB 和 NLME_RejoinRequest 返回值

Guru**** 1127450 points
Other Parts Discussed in Thread: CC2538, CC2650, Z-STACK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1280025/cc2650emk-zdo_joinconfirmcb-and-nlme_rejoinrequest-return-value

器件型号:CC2650EMK
主题中讨论的其他器件:CC2538CC2650Z-stack

您好!

我已经 开发了 基于 Z Stack 1.2.2HA 的 Zigbee 终端设备 (CC2650),这些设备可以与协调器 CC2538通信。

我调试 rejoinRequest 和生成的回调函数(ZDO_JoinConfirmCB)。
我阅读了 Z-stack API 文档、但返回值没有写入。
我想知道 NLME_RejoinReuqest 函数会出现什么类型的错误 以及 ZSuccessess 何时返回。

如果您知道、敬请告知。

此致、
村田裕也

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

    尊敬的 Yuya:

    网络状态返回值如 ZComDef.h 中所示

    	// NWK status values
    #define ZNwkInvalidParam            0xc1
    #define ZNwkInvalidRequest          0xc2
    #define ZNwkNotPermitted            0xc3
    #define ZNwkStartupFailure          0xc4
    #define ZNwkAlreadyPresent          0xc5
    #define ZNwkSyncFailure             0xc6
    #define ZNwkTableFull               0xc7
    #define ZNwkUnknownDevice           0xc8
    #define ZNwkUnsupportedAttribute    0xc9
    #define ZNwkNoNetworks              0xca
    #define ZNwkLeaveUnconfirmed        0xcb
    #define ZNwkNoAck                   0xcc  // not in spec
    #define ZNwkNoRoute                 0xcd

    如果无法为请求分配存储器以及任何其他数据请求错误返回值、也可能出现 ZMemError (0x10)

    #define ZMemError                   0x10
    #define ZBufferFull                 0x11
    #define ZUnsupportedMode            0x12
    #define ZMacMemError                0x13

    否则、如果成功发送 NLDE_DataREQ (重新加入请求的格式)、并且设备现在将等待重新加入响应、则会返回 ZSuccessess。  如果此响应从未出现、因此 未输入 ZDO_JoinConfirmCB、则可以预期 NWK_REGUING_TIMEOUT_EVT 事件。

    此致、
    瑞安

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

    您好、Ryan、
    感谢您的答复。

    我知道、如果 NLDE_DataREQ 成功并且从 ZED 发出重新加入请求数据包、则以下代码中的重新加入状态将为 ZSuccessess。
    (ZDAP.c、第1253行)

     

       rejoinStatus = NLME_ReJoinRequest( ZDO_UseExtendedPANID, pChosenNwk->logicalChannel);

    我对 ZDO_JoinConfirmCB 函数有疑问。
    以下代码中的状态何时变为 ZSuccessess? 此外,何时出现其它错误代码?
    (ZDAP.c,第2678行)

    void ZDO_JoinConfirmCB( uint16 PanId, ZStatus_t Status )

    如果此响应从未出现、因此 未输入 ZDO_JoinConfirmCB、则可以预期 NWK_REGUING_TIMEOUT_EVT 事件。
      NWK_REGUING_TIMEOUT_EVT 事件是否发生在我们未了解的代码中?

    感谢你的帮助。

    最好的 Reagards
    村田裕也

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

    ZDO_JoinConfirmCB 是成功重新加入网络后从 NWK 层返回 NLME_JoinConfirm 的结果(在此实例中为)。  如果 NWK_REGUING_TIMEOUT_EVT 到期、则可以预期以 ZFailure 状态调用 ZDO_JoinConfirmCB。

    此致、
    瑞安

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

    您好、Ryan。
    感谢您的答复。

    可以看出、重新加入请求发出后 ms 会发生超时事件(REGUING_POLL_RATE * 4ms)。
    是这样吗?
    例如、当 REGUING_POLL_RATE = 440时、它会在1760 ms 后发生。 (f8wConfig.cfg)

    /* This is used as an alternate response poll rate only for rejoin request.
     * This rate is determined by the response time of the parent that the device
     * is trying to join.
     */
    -DREJOIN_POLL_RATE=440

    ZD8p 的 EVENT_LOOP 是否可以检测到此事件?

    此致、
    余亚市

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

    您打算检测什么事件?

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

    您好、YiPai
    感谢您的答复。


    我要选中"Nwk_REJING_TIMEOUT_EVT EXCEES"。

    此致、
    余亚市

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

    NWK_REGUING_TIMEOUT_EVT 在 Z-Stack 库中进行处理、相关源代码不可用于应用开发人员。 如果您想知道在 NWK_REGUING_TIMEOUT_EVT 之前需要多长时间、可以使用 API osal_get_timeoutEx 来获取超时值。

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

    NWK_REGUING_TIMEOUT_EVT 在  Z-Stack 源代码中重新加入请求的 REGUING_POLL_RATE * 4ms 到期、或无主加入请求的预定总扫描持续时间(相关性较小)。  ZDAP.c 通过 ZDO_JoinConfirmCB 收到 Join 确认回调状态(成功或失败)的通知、这是为开发人员提供的粒度范围。

    此致、
    瑞安

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

    您好、Ryan。
    感谢您的答复。

    NLME_NetworkDiscoveryRequest 的超时是否也与 NLME_RejoinRequest 相同?

    此致、
    余亚市

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

    NLME_NetworkDiscoveryRequest  不启动 NWK_REGUING_TIMEOUT_EVT 计时器。

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

    您好、Ryan、

    我问的是错误的问题。
    NLME_NetworkDiscoveryRequest 中是否没有超时
    我询问  NLME_NetworkDiscoveryRequest 是否具有超时。
    另外、 NLME_NetworkDiscoveryRequest 超时的秒数?

    此致、
    村田裕也

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

    NLME_NetworkDiscoveryRequest 中没有超时、如果未返回 MAC_SCAN_IN_PROGRESS/MAC_NO_RESOURCES、则 启动 ZMacScanReq -> MAC_MlmeScanReq 并以 ZMacSuccessess 结束。

    此致、
    瑞安