5.1.2 Zigbee Device Object (ZDO) APIs

The Zigbee Device Objects (ZDO) component of the BitCloud® stack provides an interface between the application framework, which is a collection of application objects, the device profile and the APS layer. ZDO offers several asynchronous requests for performing basic networking operations, such as network formation and joining, as well as a set of functions that help to obtain network information from internal stack structures. Zigbee Device Profile (ZDP) requests maintain a considerable portion of the network-related functionality.

The following table provides details about the list of public API functions of the ZDO component.

Table 5-3. ZDO APIs
Function PrototypeDescription
void ZDO_StartNetworkReq(ZDO_StartNetworkReq_t *req)Performs network formation for coordinator and network join for router or end device
void ZDO_ResetNetworkReq(ZDO_ResetNetworkReq_t *req)Resets the stack without sending any commands to the network
void ZDO_MgmtNwkUpdateNotf(ZDO_MgmtNwkUpdateNotf_t *nwkParams)Notify – update notification parameters
void ZDO_ZdpReq(ZDO_ZdpReq_t *zdpReq)Sends a ZDP request
void ZDO_GetLqiRssi(ZDO_GetLqiRssi_t *lqiRssi)Requests for LQI and RSSI
void ZDO_GetParentAddr(NodeAddr_t *parentAddr)Retrieves parent’s short and extended addresses
void ZDO_GetChildrenAddr(ZDO_GetChildrenAddr_t *childrenAddr)Retrieves children’s short and extended addresses
void ZDO_SetTxPowerReq(ZDO_SetTxPowerReq_t *req)Sets TX power
ZDO_NwkStatus_t ZDO_GetNwkStatus(void)Returns the network status
void ZDO_GetNeibTable(ZDO_Neib_t *table)Retrieves the neighbor table
void ZDO_SleepReq(ZDO_SleepReq_t *req)Puts the device into the sleep mode
void ZDO_WakeUpInd(void)Sleep timer wake-up indication
void ZDO_WakeUpReq(ZDO_WakeUpReq_t *req)Forces the stack to wake up from the Sleep mode
void ZDO_SetChannel(uint8_t channel)Sets channel to ZDO information base
ZDO_Status_t ZDO_StartSyncReq(void)Starts sending sync requests (polling the parent)
ZDO_Status_t ZDO_StopSyncReq(void)Stops sending sync requests (polling the parent)
void ZDO_BindIndication(ZDO_BindInd_t *bindInd)Indicates that a new binding was added to the local binding table
void ZDO_UnbindIndication(ZDO_UnbindInd_t *unbindInd)Indicates that a certain binding was removed from the local binding table
void ZDO_ResolveAddrReq(ZDO_ResolveAddrReq_t *req)Determines the missing short address corresponding to the given extended address or the missing extended address corresponding to the given short address
const ExtAddr_t* ZDO_FindExtByShort(const ShortAddr_t shortAddr)Determines extended 64-bit address by NWK address
const ShortAddr_t* ZDO_FindShortByExt(const ExtAddr_t *const extAddr)Determines NWK address by extended 64-bit address
void ZDO_GetNeibAmount(ZDO_GetNeibAmount_t *amount)Gets neighbor routers and children amount
void const NodeDescriptor_t*ZDO_GetNodeDescriptor(void)Gets the node descriptor of the device
void ZDO_IncreaseJoinAttemptsAmount(uint8_t amount)Increases join network attempts amount
bool ZDO_IsDeviceReadyToSleep(void)Returns the information whether the stack is ready to sleep