ZigBee Device Object (ZDO) Information#

For getting information about nodes of a ZigBee network via a ZigBee Device Object (ZDO). See zigbee-device-library.h and zigbee-device-common.h for source code.

The ZDO library provides functions that construct and send several common ZDO requests. It also provides a function for extracting the two addresses from a ZDO address response. The format of all the ZDO requests and responses that the stack supports is described in stack/include/zigbee-device-stack.h. Since the library doesn't handle all of these requests and responses, the application must construct any other requests it wishes to send and decode any other responses it wishes to receive.

The request sending functions do the following:

  1. Construct a correctly formatted payload buffer.

  2. Fill in the APS frame with the correct values.

  3. Send the message by calling either sl_zigbee_send_broadcast() or sl_zigbee_send_unicast().

The result of the send is reported to the application as normal via sl_zigbee_message_sent_handler().

The following code shows an example of an application's use of sl_zigbee_simple_descriptor_request(). The command interpreter would call this function and supply the arguments.

void sendSimpleDescriptorRequest(sl_zigbee_command_state_t *state)
{
  sl_802154_short_addr_t target = sl_zigbee_unsigned_command_argument(state, 0);
  uint8_t targetEndpoint = sl_zigbee_unsigned_command_argument(state, 1);
  if (sl_zigbee_simple_descriptor_request(target,
                                   targetEndpoint,
                                   SL_ZIGBEE_APS_OPTION_NONE) != SL_STATUS_OK) {
    sli_legacy_serial_printf(SERIAL_PORT, "sl_zigbee_simple_descriptor_request failed\r\n");
  }
}

The following code shows an example of an application's use of sl_zigbee_decode_address_response().

void sl_zigbee_incoming_message_handler(sl_zigbee_incoming_message_type_t type,
                                        sl_zigbee_aps_frame_t *apsFrame,
                                        sl_zigbee_rx_packet_info_t *packetInfo,
                                        uint8_t messageLength,
                                        uint8_t *message)
{
  if (apsFrame->profileId == SL_ZIGBEE_ZDO_PROFILE_ID) {
    switch (apsFrame->clusterId) {
    case NETWORK_ADDRESS_RESPONSE:
    case IEEE_ADDRESS_RESPONSE:
      {
        sl_802154_long_addr_t eui64;
        sl_802154_short_addr_t nodeId = sl_zigbee_decode_address_response(messageLength, message, eui64);
        // Use nodeId and eui64 here.
        break;
      }
    default:
      // Handle other incoming ZDO responses here.
    }
  } else {
    // Handle incoming application messages here.
  }
}

For getting information about nodes of a ZigBee network via a ZigBee Device Object (ZDO). See zigbee-device-host.h and zigbee-device-common.h for source code.

The ZDO library provides functions that construct and send several common ZDO requests. It also provides a function for extracting the two addresses from a ZDO address response. The format of all the ZDO requests and responses that the stack supports is described in stack/include/zigbee-device-stack.h. Since the library doesn't handle all of these requests and responses, the application must construct any other requests it wishes to send and decode any other responses it wishes to receive.

The request sending functions do the following:

  1. Construct a correctly formatted payload buffer.

  2. Fill in the APS frame with the correct values.

  3. Send the message by calling either sl_zigbee_send_broadcast() or sl_zigbee_send_unicast().

The result of the send is reported to the application as normal via sl_zigbee_message_sent_handler().

The following code shows an example of an application's use of sl_zigbee_simple_descriptor_request(). The command interpreter would call this function and supply the arguments.

void sendSimpleDescriptorRequest(sl_zigbee_command_state_t *state)
{
  sl_802154_short_addr_t target = sl_zigbee_unsigned_command_argument(state, 0);
  uint8_t targetEndpoint = sl_zigbee_unsigned_command_argument(state, 1);
  if (sl_zigbee_simple_descriptor_request(target,
                                   targetEndpoint,
                                   SL_ZIGBEE_APS_OPTION_NONE) != SL_STATUS_OK) {
    sli_legacy_serial_printf(SERIAL_PORT, "sl_zigbee_simple_descriptor_request failed\r\n");
  }
}

The following code shows an example of an application's use of sl_zigbee_decode_address_response().

void sl_zigbee_incoming_message_handler(sl_zigbee_incoming_message_type_t type,
                                        sl_zigbee_aps_frame_t *apsFrame,
                                        sl_zigbee_rx_packet_info_t *packetInfo,
                                        uint8_t messageLength,
                                        uint8_t *message)
{
  if (apsFrame->profileId == SL_ZIGBEE_ZDO_PROFILE_ID) {
    switch (apsFrame->clusterId) {
    case NETWORK_ADDRESS_RESPONSE:
    case IEEE_ADDRESS_RESPONSE:
      {
        sl_802154_long_addr_t eui64;
        sl_802154_short_addr_t nodeId = sl_zigbee_decode_address_response(messageLength, message, eui64);
        // Use nodeId and eui64 here.
        break;
      }
    default:
      // Handle other incoming ZDO responses here.
    }
  } else {
    // Handle incoming application messages here.
  }
}

Service Discovery Functions#

sl_status_t
sl_zigbee_match_descriptors_request(sl_802154_short_addr_t target, uint16_t profile, uint8_t inCount, uint16_t *inClusters, uint8_t outCount, uint16_t *outClusters, sl_zigbee_aps_option_t options)

Service Discovery Functions#

sl_status_t
sl_zigbee_node_descriptor_request(sl_802154_short_addr_t target, sl_zigbee_aps_option_t options)

Request the specified node to send its node descriptor. The node descriptor contains information about the capabilities of the ZigBee node. It describes logical type, APS flags, frequency band, MAC capabilities flags, manufacturer code and maximum buffer size. It is defined in the ZigBee Application Framework Specification.

sl_status_t
sl_zigbee_power_descriptor_request(sl_802154_short_addr_t target, sl_zigbee_aps_option_t options)

Request the specified node to send its power descriptor. The power descriptor gives a dynamic indication of the power status of the node. It describes current power mode, available power sources, current power source and current power source level. It is defined in the ZigBee Application Framework Specification.

sl_status_t
sl_zigbee_simple_descriptor_request(sl_802154_short_addr_t target, uint8_t targetEndpoint, sl_zigbee_aps_option_t options)

Request the specified node to send the simple descriptor for the specified endpoint. The simple descriptor contains information specific to a single endpoint. It describes the application profile identifier, application device identifier, application device version, application flags, application input clusters and application output clusters. It is defined in the ZigBee Application Framework Specification.

sl_status_t
sl_zigbee_active_endpoints_request(sl_802154_short_addr_t target, sl_zigbee_aps_option_t options)

Request the specified node to send a list of its active endpoints. An active endpoint is one for which a simple descriptor is available.

Binding Manager Functions#

sl_status_t
sl_zigbee_bind_request(sl_802154_short_addr_t target, sl_802154_long_addr_t source, uint8_t sourceEndpoint, uint16_t clusterId, uint8_t type, sl_802154_long_addr_t destination, sl_zigbee_multicast_id_t groupAddress, uint8_t destinationEndpoint, sl_zigbee_aps_option_t options)

Send a request to create a binding entry with the specified contents on the specified node.

sl_status_t
sl_zigbee_unbind_request(sl_802154_short_addr_t target, sl_802154_long_addr_t source, uint8_t sourceEndpoint, uint16_t clusterId, uint8_t type, sl_802154_long_addr_t destination, sl_zigbee_multicast_id_t groupAddress, uint8_t destinationEndpoint, sl_zigbee_aps_option_t options)

Send a request to remove a binding entry with the specified contents from the specified node.

Node Manager Functions#

sl_status_t
sl_zigbee_lqi_table_request(sl_802154_short_addr_t target, uint8_t startIndex, sl_zigbee_aps_option_t options)

Request the specified node to send its LQI (neighbor) table. The response gives PAN ID, EUI64, node ID and cost for each neighbor. The EUI64 is only available if security is enabled. The other fields in the response are set to zero. The response format is defined in the ZigBee Device Profile Specification.

sl_status_t
sl_zigbee_routing_table_request(sl_802154_short_addr_t target, uint8_t startIndex, sl_zigbee_aps_option_t options)

Request the specified node to send its routing table. The response gives destination node ID, status and many-to-one flags, and the next hop node ID. The response format is defined in the ZigBee Device Profile Specification.

sl_status_t
sl_zigbee_binding_table_request(sl_802154_short_addr_t target, uint8_t startIndex, sl_zigbee_aps_option_t options)

Request the specified node to send its nonvolatile bindings. The response gives source address, source endpoint, cluster ID, destination address and destination endpoint for each binding entry. The response format is defined in the ZigBee Device Profile Specification. Note that bindings that have the Ember-specific UNICAST_MANY_TO_ONE_BINDING type are reported as having the standard UNICAST_BINDING type.

sl_status_t
sl_zigbee_leave_request(sl_802154_short_addr_t target, sl_802154_long_addr_t deviceAddress, uint8_t leaveRequestFlags, sl_zigbee_aps_option_t options)

Request the specified node to remove the specified device from the network. The device to be removed must be the node to which the request is sent or one of its children.

sl_status_t
sl_zigbee_permit_joining_request(sl_802154_short_addr_t target, uint8_t duration, uint8_t authentication, sl_zigbee_aps_option_t options)

Request the specified node to allow or disallow association.

Decode Address Response Messages#

sl_802154_short_addr_t
sl_zigbee_decode_address_response(uint8_t responseLength, uint8_t *response, sl_802154_long_addr_t eui64Return)

Device Discovery Functions#

sl_status_t
sl_zigbee_network_address_request(sl_802154_long_addr_t target, bool reportKids, uint8_t childStartIndex)

Request the 16 bit network address of a node whose EUI64 is known.

sl_status_t
sl_zigbee_ieee_address_request(sl_802154_short_addr_t target, bool reportKids, uint8_t childStartIndex, sl_zigbee_aps_option_t options)

Request the EUI64 of a node whose 16 bit network address is known.

Service Discovery Functions#

sl_status_t
sl_zigbee_ezsp_match_descriptors_request(sl_802154_short_addr_t target, uint16_t profile, uint8_t inCount, uint8_t outCount, uint16_t *inClusters, uint16_t *outClusters, sl_zigbee_aps_option_t options)

Functions#

void

Change the default radius for broadcast ZDO requests.

uint8_t

Retrieve the default radius for broadcast ZDO requests.

uint8_t

Provide access to the application ZDO transaction sequence number for last request. This function has been deprecated and replaced by sl_zigbee_get_last_app_zig_dev_request_sequence().

uint8_t

Provide access to the application ZDO transaction sequence number for last request.

sl_status_t
sl_zigbee_ieee_address_request_to_target(sl_802154_short_addr_t discoveryNodeId, bool reportKids, uint8_t childStartIndex, sl_zigbee_aps_option_t options, sl_802154_short_addr_t targetNodeIdOfRequest)

Macros#

#define

ZDO messages start with a sequence number.

Service Discovery Functions Documentation#

sl_zigbee_match_descriptors_request#

sl_status_t sl_zigbee_match_descriptors_request (sl_802154_short_addr_t target, uint16_t profile, uint8_t inCount, uint16_t * inClusters, uint8_t outCount, uint16_t * outClusters, sl_zigbee_aps_option_t options)
Parameters
N/Atarget

The node whose matching endpoints are desired. The request can be sent unicast or broadcast ONLY to the "RX-on-when-idle-address" (0xFFFD) If sent as a broadcast, any node that has matching endpoints will send a response.

N/Aprofile

The application profile to match.

N/AinCount

Number of clusters in the input list.

N/AinClusters

The list of input clusters. To not match any input clusters, use NULL.

N/AoutCount

Number of clusters in the output list.

N/AoutClusters

The list of output clusters. To not match any output clusters, use NULL.

N/Aoptions

The options to use when sending the unicast request. See sl_zigbee_send_unicast() for a description. This parameter is ignored if the target is a broadcast address.

Request the specified node to send a list of its endpoints that match the specified application profile and, optionally, lists of input and/or output clusters.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 117 of file app/util/zigbee-framework/zigbee-device-library.h

Service Discovery Functions Documentation#

sl_zigbee_node_descriptor_request#

sl_status_t sl_zigbee_node_descriptor_request (sl_802154_short_addr_t target, sl_zigbee_aps_option_t options)

Request the specified node to send its node descriptor. The node descriptor contains information about the capabilities of the ZigBee node. It describes logical type, APS flags, frequency band, MAC capabilities flags, manufacturer code and maximum buffer size. It is defined in the ZigBee Application Framework Specification.

Parameters
N/Atarget

The node whose node descriptor is desired.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An ::sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 50 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_power_descriptor_request#

sl_status_t sl_zigbee_power_descriptor_request (sl_802154_short_addr_t target, sl_zigbee_aps_option_t options)

Request the specified node to send its power descriptor. The power descriptor gives a dynamic indication of the power status of the node. It describes current power mode, available power sources, current power source and current power source level. It is defined in the ZigBee Application Framework Specification.

Parameters
N/Atarget

The node whose power descriptor is desired.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 77 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_simple_descriptor_request#

sl_status_t sl_zigbee_simple_descriptor_request (sl_802154_short_addr_t target, uint8_t targetEndpoint, sl_zigbee_aps_option_t options)

Request the specified node to send the simple descriptor for the specified endpoint. The simple descriptor contains information specific to a single endpoint. It describes the application profile identifier, application device identifier, application device version, application flags, application input clusters and application output clusters. It is defined in the ZigBee Application Framework Specification.

Parameters
N/Atarget

The node of interest.

N/AtargetEndpoint

The endpoint on the target node whose simple descriptor is desired.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 103 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_active_endpoints_request#

sl_status_t sl_zigbee_active_endpoints_request (sl_802154_short_addr_t target, sl_zigbee_aps_option_t options)

Request the specified node to send a list of its active endpoints. An active endpoint is one for which a simple descriptor is available.

Parameters
N/Atarget

The node whose active endpoints are desired.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 120 of file app/util/zigbee-framework/zigbee-device-common.h

Binding Manager Functions Documentation#

sl_zigbee_bind_request#

sl_status_t sl_zigbee_bind_request (sl_802154_short_addr_t target, sl_802154_long_addr_t source, uint8_t sourceEndpoint, uint16_t clusterId, uint8_t type, sl_802154_long_addr_t destination, sl_zigbee_multicast_id_t groupAddress, uint8_t destinationEndpoint, sl_zigbee_aps_option_t options)

Send a request to create a binding entry with the specified contents on the specified node.

Parameters
N/Atarget

The node on which the binding will be created.

N/Asource

The source EUI64 in the binding entry.

N/AsourceEndpoint

The source endpoint in the binding entry.

N/AclusterId

The cluster ID in the binding entry.

N/Atype

The type of binding, either UNICAST_BINDING, MULTICAST_BINDING, or UNICAST_MANY_TO_ONE_BINDING. UNICAST_MANY_TO_ONE_BINDING is an Ember-specific extension and should be used only when the target is an Ember device.

N/Adestination

The destination EUI64 in the binding entry for UNICAST_BINDING or UNICAST_MANY_TO_ONE_BINDING.

N/AgroupAddress

The group address for the MULTICAST_BINDING.

N/AdestinationEndpoint

The destination endpoint in the binding entry for the UNICAST_BINDING or UNICAST_MANY_TO_ONE_BINDING.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 158 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_unbind_request#

sl_status_t sl_zigbee_unbind_request (sl_802154_short_addr_t target, sl_802154_long_addr_t source, uint8_t sourceEndpoint, uint16_t clusterId, uint8_t type, sl_802154_long_addr_t destination, sl_zigbee_multicast_id_t groupAddress, uint8_t destinationEndpoint, sl_zigbee_aps_option_t options)

Send a request to remove a binding entry with the specified contents from the specified node.

Parameters
N/Atarget

The node on which the binding will be removed.

N/Asource

The source EUI64 in the binding entry.

N/AsourceEndpoint

The source endpoint in the binding entry.

N/AclusterId

The cluster ID in the binding entry.

N/Atype

The type of binding, either UNICAST_BINDING, MULTICAST_BINDING, or UNICAST_MANY_TO_ONE_BINDING. UNICAST_MANY_TO_ONE_BINDING is an Ember-specific extension and should be used only when the target is an Ember device.

N/Adestination

The destination EUI64 in the binding entry for the UNICAST_BINDING or UNICAST_MANY_TO_ONE_BINDING.

N/AgroupAddress

The group address for the MULTICAST_BINDING.

N/AdestinationEndpoint

The destination endpoint in the binding entry for the UNICAST_BINDING or UNICAST_MANY_TO_ONE_BINDING.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An ::sl_status_t value.

    • ::SL_STATUS_OK

    • ::SL_STATUS_ALLOCATION_FAILED _ ::SL_STATUS_NETWORK_DOWN

    • ::SL_STATUS_BUSY


Definition at line 224 of file app/util/zigbee-framework/zigbee-device-common.h

Node Manager Functions Documentation#

sl_zigbee_lqi_table_request#

sl_status_t sl_zigbee_lqi_table_request (sl_802154_short_addr_t target, uint8_t startIndex, sl_zigbee_aps_option_t options)

Request the specified node to send its LQI (neighbor) table. The response gives PAN ID, EUI64, node ID and cost for each neighbor. The EUI64 is only available if security is enabled. The other fields in the response are set to zero. The response format is defined in the ZigBee Device Profile Specification.

Parameters
N/Atarget

The node whose LQI table is desired.

N/AstartIndex

The index of the first neighbor to include in the response.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 275 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_routing_table_request#

sl_status_t sl_zigbee_routing_table_request (sl_802154_short_addr_t target, uint8_t startIndex, sl_zigbee_aps_option_t options)

Request the specified node to send its routing table. The response gives destination node ID, status and many-to-one flags, and the next hop node ID. The response format is defined in the ZigBee Device Profile Specification.

Parameters
N/Atarget

The node whose routing table is desired.

N/AstartIndex

The index of the first route entry to include in the response.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 305 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_binding_table_request#

sl_status_t sl_zigbee_binding_table_request (sl_802154_short_addr_t target, uint8_t startIndex, sl_zigbee_aps_option_t options)

Request the specified node to send its nonvolatile bindings. The response gives source address, source endpoint, cluster ID, destination address and destination endpoint for each binding entry. The response format is defined in the ZigBee Device Profile Specification. Note that bindings that have the Ember-specific UNICAST_MANY_TO_ONE_BINDING type are reported as having the standard UNICAST_BINDING type.

Parameters
N/Atarget

The node whose binding table is desired.

N/AstartIndex

The index of the first binding entry to include in the response.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 331 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_leave_request#

sl_status_t sl_zigbee_leave_request (sl_802154_short_addr_t target, sl_802154_long_addr_t deviceAddress, uint8_t leaveRequestFlags, sl_zigbee_aps_option_t options)

Request the specified node to remove the specified device from the network. The device to be removed must be the node to which the request is sent or one of its children.

Parameters
N/Atarget

The node which will remove the device.

N/AdeviceAddress

All zeros if the target is to remove itself from the network or the EUI64 of a child of the target device to remove that child.

N/AleaveRequestFlags

A bitmask of leave options. Include LEAVE_REQUEST_REMOVE_CHILDREN_FLAG if the target is to remove their children and/or LEAVE_REQUEST_REJOIN_FLAG if the target is to rejoin the network immediately after leaving.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 358 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_permit_joining_request#

sl_status_t sl_zigbee_permit_joining_request (sl_802154_short_addr_t target, uint8_t duration, uint8_t authentication, sl_zigbee_aps_option_t options)

Request the specified node to allow or disallow association.

Parameters
N/Atarget

The node which will allow or disallow association. The request can be broadcast by using a broadcast address (0xFFFC/0xFFFD/0xFFFF). No response is sent if the request is broadcast.

N/Aduration

A value of 0x00 disables joining. A value of 0xFF enables joining. Any other value enables joining for that number of seconds.

N/Aauthentication

Controls Trust Center authentication behavior.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description. This parameter is ignored if the target is a broadcast address.

Returns

  • An sl_status_t value. ::SL_STATUS_OK, ::SL_STATUS_ALLOCATION_FAILED, ::SL_STATUS_NETWORK_DOWN or ::SL_STATUS_BUSY.


Definition at line 379 of file app/util/zigbee-framework/zigbee-device-common.h

Decode Address Response Messages Documentation#

sl_zigbee_decode_address_response#

sl_802154_short_addr_t sl_zigbee_decode_address_response (uint8_t responseLength, uint8_t * response, sl_802154_long_addr_t eui64Return)
Parameters
N/AresponseLength

The length of the received ZDO message.

N/Aresponse

The received ZDO message with cluster ID NETWORK_ADDRESS_RESPONSE or IEEE_ADDRESS_RESPONSE.

N/Aeui64Return

The EUI64 from the response is copied here.

Extract the EUI64 and the node ID from an address response message.

Returns


Definition at line 401 of file app/util/zigbee-framework/zigbee-device-common.h

Device Discovery Functions Documentation#

sl_zigbee_network_address_request#

sl_status_t sl_zigbee_network_address_request (sl_802154_long_addr_t target, bool reportKids, uint8_t childStartIndex)

Request the 16 bit network address of a node whose EUI64 is known.

Parameters
N/Atarget

The EUI64 of the node.

N/AreportKids

true to request that the target list their children in the response.

N/AchildStartIndex

The index of the first child to list in the response. Ignored if reportKids is false.

Returns

  • An ::sl_status_t value.

    • ::SL_STATUS_OK - The request was transmitted successfully.

    • ::SL_STATUS_ALLOCATION_FAILED - Insufficient message buffers were available to construct the request.

    • ::SL_STATUS_NETWORK_DOWN - The node is not part of a network.

    • ::SL_STATUS_BUSY - Transmission of the request failed.


Definition at line 109 of file app/util/zigbee-framework/zigbee-device-host.h

sl_zigbee_ieee_address_request#

sl_status_t sl_zigbee_ieee_address_request (sl_802154_short_addr_t target, bool reportKids, uint8_t childStartIndex, sl_zigbee_aps_option_t options)

Request the EUI64 of a node whose 16 bit network address is known.

Parameters
N/Atarget

The network address of the node.

N/AreportKids

true to request that the target list their children in the response.

N/AchildStartIndex

The index of the first child to list in the response. Ignored if reportKids is false.

N/Aoptions

The options to use when sending the request. See sl_zigbee_send_unicast() for a description.

Returns

  • An ::sl_status_t value.

    • ::SL_STATUS_OK

    • ::SL_STATUS_ALLOCATION_FAILED

    • ::SL_STATUS_NETWORK_DOWN

    • ::SL_STATUS_BUSY


Definition at line 130 of file app/util/zigbee-framework/zigbee-device-host.h

Service Discovery Functions Documentation#

sl_zigbee_ezsp_match_descriptors_request#

sl_status_t sl_zigbee_ezsp_match_descriptors_request (sl_802154_short_addr_t target, uint16_t profile, uint8_t inCount, uint8_t outCount, uint16_t * inClusters, uint16_t * outClusters, sl_zigbee_aps_option_t options)
Parameters
N/Atarget

The node whose matching endpoints are desired. The request can be sent unicast or broadcast ONLY to the "RX-on-when-idle-address" (0xFFFD) If sent as a broadcast, any node that has matching endpoints will send a response.

N/Aprofile

The application profile to match.

N/AinCount

The number of input clusters. To not match any input clusters, set this value to 0.

N/AoutCount

The number of output clusters. To not match any output clusters, set this value to 0.

N/AinClusters

The list of input clusters.

N/AoutClusters

The list of output clusters.

N/Aoptions

The options to use when sending the unicast request. See sl_zigbee_send_unicast() for a description. This parameter is ignored if the target is a broadcast address.

Request the specified node to send a list of its endpoints that match the specified application profile and, optionally, lists of input and/or output clusters.

Returns

  • An sl_status_t value. SL_STATUS_OK, SL_STATUS_ALLOCATION_FAILED, SL_STATUS_NETWORK_DOWN or SL_STATUS_BUSY.


Definition at line 168 of file app/util/zigbee-framework/zigbee-device-host.h

Function Documentation#

sl_zigbee_set_zig_dev_request_radius#

void sl_zigbee_set_zig_dev_request_radius (uint8_t radius)

Change the default radius for broadcast ZDO requests.

Parameters
N/Aradius

The radius to be used for future ZDO request broadcasts.


Definition at line 413 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_get_zig_dev_request_radius#

uint8_t sl_zigbee_get_zig_dev_request_radius (void )

Retrieve the default radius for broadcast ZDO requests.

Parameters
N/A

Returns

  • The radius to be used for future ZDO request broadcasts.


Definition at line 420 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_get_last_zig_dev_request_sequence#

uint8_t sl_zigbee_get_last_zig_dev_request_sequence (void )

Provide access to the application ZDO transaction sequence number for last request. This function has been deprecated and replaced by sl_zigbee_get_last_app_zig_dev_request_sequence().

Parameters
N/A

Returns

  • Last application ZDO transaction sequence number used


Definition at line 428 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_get_last_app_zig_dev_request_sequence#

uint8_t sl_zigbee_get_last_app_zig_dev_request_sequence (void )

Provide access to the application ZDO transaction sequence number for last request.

Parameters
N/A

Returns

  • Last application ZDO transaction sequence number used


Definition at line 443 of file app/util/zigbee-framework/zigbee-device-common.h

sl_zigbee_ieee_address_request_to_target#

sl_status_t sl_zigbee_ieee_address_request_to_target (sl_802154_short_addr_t discoveryNodeId, bool reportKids, uint8_t childStartIndex, sl_zigbee_aps_option_t options, sl_802154_short_addr_t targetNodeIdOfRequest)
Parameters
N/AdiscoveryNodeId
N/AreportKids
N/AchildStartIndex
N/Aoptions
N/AtargetNodeIdOfRequest

Definition at line 136 of file app/util/zigbee-framework/zigbee-device-host.h

Macro Definition Documentation#

ZDO_MESSAGE_OVERHEAD#

#define ZDO_MESSAGE_OVERHEAD
Value:
1

ZDO messages start with a sequence number.


Definition at line 29 of file app/util/zigbee-framework/zigbee-device-common.h