Hello,
Section 6 of the Zigbee stack user guide (JNUG3130 - Rev.4.1, 2-March-2023) states:
> Many of the functions referenced in this chapter are non-blocking functions that submit a request to the relevant node(s) of the network and then return - these functions have Request or Req in their names. The recipient of the request normally replies by sending a response to the node that initiated the request. Once received, this response message can be collected using the function ZQ_bZQueueReceive()
Examples such as
zps_eAplZdpNodeDescRequest
zps_eAplZdpPowerDescRequest
zps_eAplZdpSimpleDescRequest
All use this facility. The docs for zps_eAplZdpPowerDescRequest for example state:
> The required Power descriptor is received in a Power_Desc_rsp response. The descriptor should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpPowerDescRsp (detailed in Section 9.2.3.4).
The function ZQ_bZQueueReceive does not appear to exist. We could find no reference to it in the entire SDK.
We do have function ZQ_bQueueReceive, which is the generic queue receive function, but a queue must be provided, and there is no reference to which queue that would be. The only queues setup by the application are:
zps_msgMlmeDcfmInd
zps_msgMcpsDcfmInd
zps_msgMcpsDcfm
zps_TimeEvents
None of which are appropriate.
Can you please explain the correct way to receive the response from these commands?
Thank you
Hello,
If you´re working with NXP Zigbee Stack, you can use the generic ZQ_bQueueReceive; The Zigbee stacks function with many tasks that has certain functionality each one. Receive, send, attend events are an example of the functionality each one has. If you want to share information between these tasks, you'll need to create a Queue, and with the function ZQ_bZQueueReceive and ZQ_bZQueueSend, pass the information between them.
Best Regards
Luis
Hello,
You are absolutely correct! The function ZQ_bZQueueReceive() as described in Section 6 of the Zigbee stack user guide (JNUG3130 - Rev.4.1) does not appear to exist in the SDK. Your observation and investigation are accurate.
Here's a breakdown of the situation and potential solutions:
The Problem:
Documentation Error: The user guide incorrectly refers to a function named ZQ_bZQueueReceive().
Missing Function: This specific function is not present in the SDK.
Incorrect Guidance: The documentation incorrectly directs users to use a non-existent function to retrieve ZDP responses.
Unclear Queue: While ZQ_bQueueReceive() exists, the documentation fails to specify which queue should be used to receive these ZDP responses. The queues you've identified (zps_msgMlmeDcfmInd, zps_msgMcpsDcfmInd, zps_msgMcpsDcfm, zps_TimeEvents) are indeed not the appropriate ones for ZDP response messages.
Best Regards