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.

[参考译文] CC2652P:当 ZC/ZR 的子器件(ZR/ZT)轮询数据时、ZStack 是否通知父器件(ZC/ZR)上的应用?

Guru**** 1139930 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/1306391/cc2652p-does-zstack-notify-application-on-parent-device-zc-zr-when-its-child-device-zr-zed-polls-for-data

器件型号:CC2652P
主题中讨论的其他器件:Z-STACK

您好!

我正在寻找与 TI-15.4堆栈中的 pollIndCb 函数类似的东西:

// collector.c
/*!
 * @brief      Process the MAC Poll Indication Callback
 *
 * @param      pPollInd - poll indication
 */
static void pollIndCB(ApiMac_mlmePollInd_t *pPollInd)

通过在该函数上后台运行、我们可以控制向 TI-15.4堆栈中的传感器节点发送数据包的时间。 Z-Stack 中是否有类似的做法?

我浏览了 ZStack.h 中定义的 ZStack_devZDOCBREQ_t、它似乎没有任何类似的成员按名称进行判断。似乎没有任何与 zstackmsg.h 中定义的 ZStack_CmdID 中的 poll 相关的 cmdId。

但我也看到了另一个可能相关的函数:

//ad_app.c
/*********************************************************************
 * @fn          ZDO_PollConfirmCB
 *
 * @brief       This function allows the next higher layer to be
 *              notified of a Poll Confirm.
 *
 * @param       none
 *
 * @return      none
 */
void ZDO_PollConfirmCB( uint8_t status )
{
  (void)status;  // Remove this line if this parameter is used.
  return;
}

这是需要研究的正确函数吗?

谢谢。

ZL

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

    您好、ZL:

    ZDO_PollConfirmCB 通知本地子设备其父设备已确认轮询数据请求、这与子设备轮询时收到通知的父设备不同。  目前、虽然 Z-Stack 源维护子管理表、但收到数据请求时 Z-Stack 应用程序不会收到通知。  如有必要、您可以让 ZED 偶尔发送 AF_DataRequest 消息而不是轮询、因为这些消息将被父设备通过 zstackmsg_Cmdids_AF_INcoming_MSG_IND 截获。

    此致、
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如有必要,您可以让 Zed 偶尔发送 AF_DataRequest 消息而不是 Pollin

    将 AF_DataRequest 发送出去后、ZED 是否会在 Rx 开启时保持唤醒状态? 至少在一段时间内? 或者我们作为用户、必须手动使 Rx 保持开启状态或等待 MINIMAL_POLL_PERIOD、然后手动发送数据轮询?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    发送 AF_DataRequest 出去后,Zed 是否会在打开 Rx 时保持唤醒?

    除非请求 APS ACK 数据包、否则不会执行此操作。  因此、   在发送数据请求(轮询)和使用 AF 数据包通知父 Z-Stack 应用程序之间、需要执行一些操作。

    、或者作为用户、我们必须手动使 Rx 保持开启状态或等待 minimum_poll 周期、然后手动发送数据轮询?

    您可以使用  NwkPollReq (0)发送一次性轮询。

    此致、
    瑞安