Service Discovery functions
The ZDP Service Discovery functions are concerned with obtaining information about the nature and capabilities of a network node.
The functions are listed below.
ZPS_eAplZdpNodeDescRequest
ZPS\_teStatus ZPS\_eAplZdpNodeDescRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpNodeDescReq *psZdpNodeDescReq);
Description
This function requests the Node descriptor of the node with a particular network address. The function sends a Node_Desc_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.4).
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpNodeDescReq;
The required Node descriptor is received in a Node_Desc_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpNodeDescRsp
(detailed in Section 9.2.3.3).
Parent topic:ZPS_eAplZdpNodeDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpNodeDescReq: Pointer to request (see above).
Parent topic:ZPS_eAplZdpNodeDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpNodeDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpPowerDescRequest
ZPS\_teStatus ZPS\_eAplZdpPowerDescRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpPowerDescReq *psZdpPowerDescReq);
Description
This function requests the Power descriptor of the node with a particular network address. The function sends a Power_Desc_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.5).
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpPowerDescReq;
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).
Parent topic:ZPS_eAplZdpPowerDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpPowerDescReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpPowerDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpPowerDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpSimpleDescRequest
ZPS\_teStatus ZPS\_eAplZdpSimpleDescRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpSimpleDescReq *psZdpSimpleDescReq);
Description
This function requests the Simple descriptor for a specific endpoint on the node with a particular network address. The function sends a Simple_Desc_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest and the relevant endpoint on the node must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.6).
typedef struct {
uint16 u16NwkAddrOfInterest; uint8 u8EndPoint;
} ZPS_tsAplZdpSimpleDescReq;
The required Simple descriptor is received in a Simple_Desc_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpSimpleDescRsp
(detailed in Section 9.2.3.5).
Parent topic:ZPS_eAplZdpSimpleDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpSimpleDescReq: Pointer to request (see above).
Parent topic:ZPS_eAplZdpSimpleDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpSimpleDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpExtendedSimpleDescRequest
ZPS\_teStatus ZPS\_eAplZdpExtendedSimpleDescRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpExtendedSimpleDescReq
*psZdpExtendedSimpleDescReq);
Description
This function requests a cluster list for a specific endpoint on the node with a particular network address. The function should be called if the endpoint has more input or output clusters than could be included in the response to ZPS_eAplZdpSimpleDescRequest(). The function sends an Extended_Simple_Desc_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest and the relevant endpoint on the node must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.7).
typedef struct { uint16 u16NwkAddr; uint8 u8EndPoint;
uint8 u8StartIndex;
} ZPS_tsAplZdpExtendedSimpleDescReq;
This structure allows you to specify the first input/output cluster of interest in the endpoint’s input and output cluster lists. Thus, this should normally be the cluster after the last one reported following a call to ZPS_eAplZdpSimpleDescRequest().
The required cluster information is received in a Extended_Simple_Desc_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpExtendedSimpleDescRsp
(detailed in Section 9.2.3.6).
Parent topic:ZPS_eAplZdpExtendedSimpleDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpExtendedSimpleDescReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpExtendedSimpleDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpExtendedSimpleDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpComplexDescRequest
ZPS\_teStatus ZPS\_eAplZdpComplexDescRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpComplexDescReq *psZdpComplexDescReq);
Description
This function requests the Complex descriptor of the node with a particular network address. The function sends a Complex_Desc_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.8).
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpComplexDescReq;
The required Complex descriptor will be received in a Complex_Desc_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpComplexDescRsp
(detailed in Section 9.2.3.7).
Parent topic:ZPS_eAplZdpComplexDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpComplexDescReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpComplexDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpComplexDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpUserDescRequest
ZPS_teStatus ZPS_eAplZdpUserDescRequest(
PDUM_thAPduInstance hAPduInst,
ZPS_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS_tsAplZdpUserDescReq *psZdpUserDescReq);
Description
This function requests the User descriptor of the node with a particular network address. The function sends a User_Desc_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
Note: This function can only be used to access the User descriptor of a non-NXP device (which supports this descriptor), since the storage of a User descriptor on an NXP remove device is not supported.
The network address of the node of interest must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.9).
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpUserDescReq;
The required User descriptor will be received in a User_Desc_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpUserDescRsp
(detailed in Section 9.2.3.8).
Parent topic:ZPS_eAplZdpUserDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpUserDescReq: Pointer to request (see above).
Parent topic:ZPS_eAplZdpUserDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpUserDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpMatchDescRequest
ZPS\_teStatus ZPS\_eAplZdpMatchDescRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpMatchDescReq *psZdpMatchDescReq);
Description
This function requests responses from network nodes with endpoints that match specified criteria in their Simple descriptors. More specifically, these criteria include: application profile, number of input clusters, number of output clusters, list of input clusters, and list of output clusters. The function sends out a Match_Desc_req command, as a broadcast to all network nodes. It might also be sent as a unicast to either a specific node of interest or to another node that may hold the required information in its primary discovery cache. The wildcard profile (0xFFFF) can be used to match any profile ID.
The request is represented by the structure below (further detailed in Section 9.2.2.10).
typedef struct {
uint16 u16NwkAddrOfInterest;
uint16 u16ProfileId;
/* rest of message is variable length */
uint8 u8NumInClusters;
uint16* pu16InClusterList;
uint8 u8NumOutClusters;
uint16* pu16OutClusterList;
} ZPS_tsAplZdpMatchDescReq;
A node with matching endpoint criteria responds with a Match_Desc_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpMatchDescRsp
(detailed in Section9.2.3.9).
Parent topic:ZPS_eAplZdpMatchDescRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpMatchDescReq: Pointer to request (see above).
Parent topic:ZPS_eAplZdpMatchDescRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpMatchDescRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpActiveEpRequest
ZPS\_teStatus ZPS\_eAplZdpActiveEpRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpActiveEpReq *psZdpActiveEpReq);
Description
This function requests a list of the active endpoints on a remote node. The function sends an Active_EP_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.11).
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpActiveEpReq;
The endpoint list is received in an Active_EP_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpActiveEpRsp
(detailed in Section 9.2.3.10).
Parent topic:ZPS_eAplZdpActiveEpRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent
uDstAddr: Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpActiveEpReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpActiveEpRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpActiveEpRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpExtendedActiveEpRequest
ZPS_teStatus ZPS_eAplZdpExtendedActiveEpRequest(
PDUM_thAPduInstance hAPduInst,
ZPS_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS_tsAplZdpExtendedActiveEpReq
*psZdpExtendedActiveEpReq);
Description
This function requests a list of the active endpoints on a remote node. The function should be called if the node has more active endpoints than could be included in a response to ZPS_eAplZdpActiveEpRequest(). The function sends an Extended_Active_EP_req request either to the relevant node or to another node that may hold the required information in its primary discovery cache.
The network address of the node of interest must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.12).
typedef struct { uint16 u16NwkAddr;
uint8 u8StartIndex;
} ZPS_tsAplZdpExtendedActiveEpReq;
This structure allows you to specify the first endpoint of interest for the request.
The endpoint list is received in an Extended_Active_EP_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpExtendedActiveEpRsp
(detailed in Section9.2.3.11).
Parent topic:ZPS_eAplZdpExtendedActiveEpRequest
Parameters
hAPduInst Handle of APDU instance in which request is sent.
uDstAddr Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
* pu8SeqNumber Pointer to sequence number of request
* psZdpActiveEpReq Pointer to request (see above)
Parent topic:ZPS_eAplZdpExtendedActiveEpRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpExtendedActiveEpRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpUserDescSetRequest
ZPS_teStatus ZPS_eAplZdpUserDescSetRequest(
PDUM_thAPduInstance hAPduInst,
ZPS_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS_tsAplZdpUserDescSet *psZdpUserDescSetReq);
Description
This function can be used to configure the User descriptor on a remote node. The function sends a User_Desc_set request either to the remote node or to another node that may hold the relevant User descriptor in its primary discovery cache.
Note: This function can only be used to access the User descriptor of a non-NXP device (which supports this descriptor), since the storage of a User descriptor on an NXP device is not supported.
The network address of the node of interest as well as the required modifications must be specified in the request, which is represented by the structure below (further detailed in Section 9.2.2.13).
typedef struct {
uint16 u16NwkAddrOfInterest; uint8 u8Length;
char szUserDescriptor[ZPS_ZDP_LENGTH_OF_USER_DESC];
} ZPS_tsAplZdpUserDescSet;
If the specified User descriptor was successfully modified, a User_Desc_conf response is received. This response should be collected by the application task using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpUserDescConf
(detailed in Section 9.2.3.12).
Parent topic:ZPS_eAplZdpUserDescSetRequest
Parameters
hAPduInst Handle of APDU instance in which request is sent
uDstAddr Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpUserDescSetReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpUserDescSetRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpUserDescSetRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpSystemServerDiscoveryRequest
ZPS\_teStatus ZPS\_eAplZdpSystemServerDiscoveryRequest\(
PDUM\_thAPduInstance hAPduInst,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpSystemServerDiscoveryReq
*psZdpSystemServerDiscoveryReq);
Description
This function can be used to request information on the available servers hosted by remote nodes (Primary or Backup Trust Centre, Primary or Backup Binding Table Cache, Primary or Backup Discovery Cache, Network Manager). The function broadcasts a System_Server_Discovery_req request to all network nodes.
The required servers must be specified by means of a bitmask in the request, which is represented by the structure below (further detailed in Section 9.2.2.14).
typedef struct {
uint16 u16ServerMask;
} ZPS_tsAplZdpSystemServerDiscoveryReq;
A remote node replies with a System_Server_Discovery_rsp response, indicating which of the requested servers are implemented. This response should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpSystemServerDiscoveryRsp
(detailed in Section 9.2.3.13).
Parent topic:ZPS_eAplZdpSystemServerDiscoveryRequest
Parameters
hAPduInst Handle of APDU instance in which request is sent.
*pu8SeqNumber Pointer to sequence number of request
*psZdpSystemServerDiscoveryReq Pointer to request (see above)
Parent topic:ZPS_eAplZdpSystemServerDiscoveryRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpSystemServerDiscoveryRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpDiscoveryCacheRequest
ZPS\_teStatus ZPS\_eAplZdpDiscoveryCacheRequest\(
PDUM\_thAPduInstance hAPduInst,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpDiscoveryCacheReq
*psZdpDiscoveryCacheReq);
Description
This function is used to discover which nodes in the network have a primary discovery cache - that is, a bank of information about other nodes in the network. The function broadcasts a Discovery_Cache_req request to the network.
The request includes the network and IEEE addresses of the sending device, and is represented by the structure below (further detailed in Section 9.2.2.15).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
} ZPS_tsAplZdpDiscoveryCacheReq;
A node with a primary discovery cache replies with a Discovery_Cache_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpDiscoveryCacheRsp
(detailed in Section 9.2.3.14).
Parent topic:ZPS_eAplZdpDiscoveryCacheRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent.
*pu8SeqNumber: Pointer to sequence number of request.
*psZdpDiscoveryCacheReq: Pointer to request (see above).
Parent topic:ZPS_eAplZdpDiscoveryCacheRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpDiscoveryCacheRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpDiscoveryStoreRequest
ZPS\_teStatus ZPS\_eAplZdpDiscoveryStoreRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpDiscoveryStoreReq
*psZdpDiscoveryStoreReq);
Description
This function can be called on an End Device to request a remote node to reserve memory space to store the local node’s ‘discovery information’. To do this, the remote node must contain a primary discovery cache. The ‘discovery information’ includes the local node’s IEEE address, network address, Node descriptor, Power descriptor, Simple descriptor and number of active endpoints. The function sends a Discovery_store_req request to the remote node.
This request includes the network and IEEE addresses of the sending node as well as the amount of storage space (in bytes) needed to store the information. The request is represented by the structure below (further detailed in Section 9.2.2.16).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
uint8 u8NodeDescSize;
uint8 u8PowerDescSize;
uint8 u8ActiveEpSize;
uint8 u8SimpleDescCount;
/* Rest of message is variable length */
uint8* pu8SimpleDescSizeList;
} ZPS_tsAplZdpDiscoveryStoreReq;
On receiving this request, the remote node first checks whether it has a primary discovery cache. If this is the case, it checks whether it has storage space in the cache for the new discovery information. If the space is available, it is reserved until the information is later uploaded from the local node.
The node replies with a Discovery_store_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpDiscoveryStoreRsp
(detailed in Section 9.2.3.15).
Parent topic:ZPS_eAplZdpDiscoveryStoreRequest
Parameters
hAPduInst:**** Handle of APDU instance in which request is sent.
uDstAddr: Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpDiscoveryStoreReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpDiscoveryStoreRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpDiscoveryStoreRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpNodeDescStoreRequest
ZPS\_teStatus ZPS\_eAplZdpNodeDescStoreRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpNodeDescStoreReq
*psZdpNodeDescStoreReq);
Description
This function can be called on an End Device to upload the local node’s Node descriptor for storage in the primary discovery cache on a remote node. The function sends a Node_Desc_store_req command to the remote node.
This request includes the network and IEEE addresses of the sending node as well as the Node descriptor to store. The request is represented by the structure below (further detailed in Section 9.2.2.17).
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
/* Rest of message is variable length */ ZPS_tsAplZdpNodeDescriptor sNodeDescriptor;
} ZPS_tsAplZdpNodeDescStoreReq;
On receiving the request, the remote node will first check whether it has a primary discovery cache. If this is the case, it will check whether it has previously reserved storage space in its cache for the local node. If it has, it will store the Node descriptor in its cache.
The node replies with a Node_Desc_store_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpNodeDescStoreRsp
(detailed in Section 9.2.3.16).
Note: This function should only be called if storage space for the local node’s ‘discovery information’ has previously been reserved on the remote node following a call to ZPS_eAplZdpDiscoveryStoreRequest().
Parent topic:ZPS_eAplZdpNodeDescStoreRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent.
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpNodeDescStoreReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpNodeDescStoreRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpNodeDescStoreRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpPowerDescStoreRequest
ZPS\_teStatus ZPS\_eAplZdpPowerDescStoreRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpPowerDescStoreReq
*psZdpPowerDescStoreReq);
Description
This function can be called on an End Device to upload the local node’s Power descriptor for storage in the primary discovery cache on a remote node. The function sends a Power_Desc_store_req
request to the remote node.
This request includes the network and IEEE addresses of the sending node as well as the Power descriptor to store. The request is represented by the structure below (further detailed in Section 9.2.2.18).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
/* Rest of message is variable length */
ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;
} ZPS_tsAplZdpPowerDescStoreReq;
On receiving the request, the remote node first checks whether it has a primary discovery cache. If this is the case, it checks whether it has previously reserved storage space in its cache for the local node. If it has, it stores the Power descriptor in its cache.
The node replies with a Power_Desc_store_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpPowerDescStoreRsp
(detailed in Section 9.2.3.17).
Note: This function should only be called if storage space for the local node’s ‘discovery information’ has previously been reserved on the remote node following a call to ZPS_eAplZdpDiscoveryStoreRequest().
Parent topic:ZPS_eAplZdpPowerDescStoreRequest
Parameters
hAPduInst:**** Handle of APDU instance in which request is sent.
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpPowerDescStoreReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpPowerDescStoreRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpPowerDescStoreRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpSimpleDescStoreRequest
ZPS\_teStatus ZPS\_eAplZdpSimpleDescStoreRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpSimpleDescStoreReq
*psZdpSimpleDescStoreReq);
Description
This function can be called on an End Device to upload a Simple descriptor from the local node for storage in the primary discovery cache on the specified remote node. The Simple descriptor for each endpoint on the local node must be uploaded separately using this function. The function sends a Simple_Desc_store_req request to the remote node.
This request includes the network and IEEE addresses of the sending node as well as the Simple descriptor to store. The request is represented by the structure below (further detailed in Section 9.2.2.19).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
uint8 u8Length;
/* Rest of message is variable length */
ZPS_tsAplZdpSimpleDescType sSimpleDescriptor;
} ZPS_tsAplZdpSimpleDescStoreReq;
On receiving the request, the remote node first checks whether it has a primary discovery cache. If this is the case, it checks whether it has previously reserved storage space in its cache for the local node. If it has, it stores the Simple descriptor in its cache.
The node replies with a Simple_Desc_store_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpSimpleDescStoreRsp
(detailed in Section 9.2.3.18).
Note: This function should only be called if storage space for the local node’s ‘discovery information’ has previously been reserved on the remote node following a call to ZPS_eAplZdpDiscoveryStoreRequest().
Parent topic:ZPS_eAplZdpSimpleDescStoreRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent.
uDstAddr: Address of destination node of request (can be 16-bit or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpSimpleDescStoreReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpSimpleDescStoreRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpSimpleDescStoreRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpActiveEpStoreRequest
ZPS\_teStatus ZPS\_eAplZdpActiveEpStoreRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpActiveEpStoreReq
*psZdpActiveEpStoreReq);
Description
This function can be called on an End Device to upload a list of its active endpoints for storage in the primary discovery cache on a remote node. The function sends an Active_EP_store_req command to the remote node.
This request includes the network and IEEE addresses of the sending node as well as the list of active endpoints to store. The request is represented by the structure below (further detailed in Section 9.2.2.20).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
uint8 u8ActiveEPCount;
/* Rest of message is variable length */
uint8* pu8ActiveEpList;
} ZPS_tsAplZdpActiveEpStoreReq;
On receiving the request, the remote node first checks whether it has a primary discovery cache. If this is the case, it checks whether it has previously reserved storage space in its cache for the local node. If it has, it stores the list of active endpoints in its cache.
The node replies with an Active_EP_store_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpActiveEpStoreRsp
(detailed in Section 9.2.3.19).
Note: This function should only be called if storage space for the local node’s ‘discovery information’ has previously been reserved on the remote node following a call to ZPS_eAplZdpDiscoveryStoreRequest().
Parent topic:ZPS_eAplZdpActiveEpStoreRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent.
uDstAddr: Address of destination node of request (can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpActiveEpStoreReq: Pointer to request (see above).
Parent topic:ZPS_eAplZdpActiveEpStoreRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpActiveEpStoreRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpFindNodeCacheRequest
ZPS\_teStatus ZPS\_eAplZdpFindNodeCacheRequest\(
PDUM\_thAPduInstance hAPduInst,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpFindNodeCacheReq
*psZdpFindNodeCacheReq);
Description
This function can be used to search for nodes in the network that hold ‘discovery information’ about a particular node. The function broadcasts a Find_node_cache_reqrequest to the network.
This request includes the network and IEEE addresses of the node of interest. The request is represented by the structure below (further detailed in Section 8.2.2.21).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
} ZPS_tsAplZdpFindNodeCacheReq;
On receiving the request, a remote node first checks whether it has a primary discovery cache, or is the specified node itself. If either is the case, it checks whether it holds the required information and, if this is the case, replies with a Find_node_cache_rspresponse. This response should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpFindNodeCacheRsp
(detailed in Section 8.2.3.20).
Only nodes that hold the required information respond to the request.
Parent topic:ZPS_eAplZdpFindNodeCacheRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent.
*pu8SeqNumber: Pointer to sequence number of request
*psZdpFindNodeCacheReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpFindNodeCacheRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpFindNodeCacheRequest
Parent topic:Service Discovery functions
ZPS_eAplZdpRemoveNodeCacheRequest
ZPS\_teStatus ZPS\_eAplZdpRemoveNodeCacheRequest\(
PDUM\_thAPduInstance hAPduInst,
ZPS\_tuAddress uDstAddr,
bool bExtAddr,
uint8 *pu8SeqNumber,
ZPS\_tsAplZdpRemoveNodeCacheReq
*psZdpRemoveNodeCacheReq);
Description
This function requests a Primary Discovery Cache node to remove from its cache all ‘discovery information’ relating to a particular End Device. The function sends a Remove_node_cache_req request to the Primary Discovery Cache node.
The effect of a successful request is to remove the relevant ‘discovery information’ and free the corresponding storage space in the cache previously reserved by ZPS_eAplZdpDiscoveryStoreRequest()\ (which may have been called from another node in the network).
This request includes the network and IEEE addresses of the End Device whose ‘discovery information’ is to be removed. The request is represented by the structure below (further detailed in Section 9.2.2.22).
typedef struct {
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
} ZPS_tsAplZdpRemoveNodeCacheReq;
On receiving the request, the remote node first checks whether it has a primary discovery cache. If this is the case, it checks whether it has previously received and implemented a Discovery_store_reqrequest for the specified End Device, resulting from a call to ZPS_eAplZdpDiscoveryStoreRequest(). If it has, it deletes the relevant data and unreserve the corresponding part of the cache.
The node replies with a Remove_node_cache_rsp response, which should be collected using the function ZQ_bZQueueReceive() and stored in a structure of type ZPS_tsAplZdpRemoveNodeCacheRsp
(detailed in Section 9.2.3.21).
Parent topic:ZPS_eAplZdpRemoveNodeCacheRequest
Parameters
hAPduInst: Handle of APDU instance in which request is sent.
uDstAddr: Address of destination node of request(can be 16- or 64-bit, as specified by bExtAddr)
bExtAddr: Type of destination address:
TRUE: 64-bit IEEE (MAC) address
FALSE: 16-bit network address
*pu8SeqNumber: Pointer to sequence number of request
*psZdpRemoveNodeCacheReq: Pointer to request (see above)
Parent topic:ZPS_eAplZdpRemoveNodeCacheRequest
Returns
ZPS_E_SUCCESS (request successfully sent)
APS return codes, listed and described in Section 11.2.2
NWK return codes, listed and described in Section 11.2.3
MAC return codes, listed and described in Section 11.2.4
Parent topic:ZPS_eAplZdpRemoveNodeCacheRequest
Parent topic:Service Discovery functions
Parent topic:ZDP API functions