XBee Firmware Library  1.6.0
Functions

Functions

int _match_desc_cluster_list (uint8_t **buffer, const uint16_t *clust_read, int max_count)
 
int _simple_desc_cluster_list (uint8_t **buffer, int max_count, uint8_t mask, const wpan_cluster_table_entry_t *entry)
 
int _zdo_active_ep_respond (const wpan_envelope_t FAR *envelope)
 
const wpan_endpoint_table_entry_t_zdo_endpoint_of (wpan_dev_t *dev)
 
const addr64_zdo_envelope_create (wpan_envelope_t *envelope, wpan_dev_t *dev, const addr64 *address)
 
int _zdo_match_desc_respond (const wpan_envelope_t FAR *envelope)
 
zigbee_zdo_debug int _zdo_process_ieee_addr_resp (wpan_conversation_t FAR *conversation, const wpan_envelope_t FAR *envelope)
 
zigbee_zdo_debug int _zdo_process_nwk_addr_resp (wpan_conversation_t FAR *conversation, const wpan_envelope_t FAR *envelope)
 
int _zdo_simple_desc_respond (const wpan_envelope_t FAR *envelope)
 
wpan_ep_state_t FAR * zdo_endpoint_state (wpan_dev_t *dev)
 Returns the ZDO endpoint's state if a device has a ZDO endpoint. More...
 
int zdo_handler (const wpan_envelope_t FAR *envelope, wpan_ep_state_t FAR *ep_state)
 Process ZDO frames (received on endpoint 0 with Profile ID 0). More...
 
int zdo_match_desc_request (void *buffer, int16_t buflen, uint16_t addr_of_interest, uint16_t profile_id, const uint16_t *inClust, const uint16_t *outClust)
 Generate a Match_Desc (Match Descriptor) request (ZigBee spec 2.4.3.1.7) to send on the network. Note that the first byte of buffer is NOT set, and that the caller should set it to the next sequence number/transaction ID. More...
 
int zdo_mgmt_leave_req (wpan_dev_t *dev, const addr64 *address, uint16_t flags)
 Send a ZDO Management Leave Request. More...
 
int zdo_send_bind_req (wpan_envelope_t *envelope, uint16_t type, wpan_response_fn callback, void FAR *context)
 Send a ZDO Bind (or Unbind) Request to the destination address in the envelope. More...
 
int zdo_send_descriptor_req (wpan_envelope_t *envelope, uint16_t cluster, uint16_t addr_of_interest, wpan_response_fn callback, const void FAR *context)
 Send a ZDO Node, Power, Complex or User Descriptor request, or an Active Endpoint request. More...
 
int zdo_send_ieee_addr_req (wpan_dev_t *dev, uint16_t net_addr, addr64 FAR *ieee_be)
 Given a device's 16-bit network address, get its IEEE (64-bit) address by unicasting a ZDO IEEE_addr request to it. More...
 
int zdo_send_nwk_addr_req (wpan_dev_t *dev, const addr64 FAR *ieee_be, uint16_t FAR *net)
 Given a device's IEEE (64-bit) address, get its 16-bit network address by unicasting a ZDO NWK_addr request to it. More...
 
int zdo_send_response (const wpan_envelope_t FAR *request, const void FAR *response, uint16_t length)
 Send a response to a ZDO request. More...
 
int zdo_simple_desc_request (wpan_envelope_t *envelope, uint16_t addr_of_interest, uint_fast8_t endpoint, wpan_response_fn callback, const void FAR *context)
 Send a ZDO Simple Descriptor Request. More...
 

Detailed Description

ZigBee Device Objects (ZDO) and ZigBee Device Profile (ZDP).

Note that ZigBee firmware needs to have ATAO set to 3 (or "not 1") in order to receive the Simple Descriptor, Active Endpoints and Match Descriptor requests. We assume that the Ember stack handles responses to those requests for our children devies, and will only pass requests up for our device to respond to.

Create a cluster table and have the ZDO_ENDPOINT() macro use it instead of having zdo_handler use a switch on cluster_id to call the handlers for each command.