XBee Firmware Library
1.6.0
|
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... | |
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.