5.2.8. APS and AF

This section provides the APS (Application Support Sub-layer) and AF (Application Framework) related APIs and defines of ESP Zigbee Core.

5.2.8.1. Application Support Sub-layer

5.2.8.1.1. Header File

5.2.8.1.2. Functions

void ezb_apsde_data_indication_handler_register(ezb_apsde_data_indication_callback_t cb)

Register the callback for retrieving the aps data indication.

Parameters:

cb -- [in] A function pointer for ezb_apsde_data_indication_callback_t

void ezb_apsde_data_confirm_handler_register(ezb_apsde_data_confirm_callback_t cb)

Register the callback for retrieving the aps data confirm.

Note

If the callback is registered by the application, the application is responsible for handling APSDE confirm.

Parameters:

cb -- [in] A function pointer for ezb_apsde_data_confirm_callback_t

ezb_err_t ezb_apsde_data_request(const ezb_apsde_data_req_t *req)

APS data request.

Parameters:

req -- [in] A pointer for apsde data request, ezb_apsde_data_req_s

Returns:

  • EZB_ERR_NONE: on success

  • EZB_ERR_INV_ARG: invalid arguments

  • EZB_ERR_NO_MEM: not memory

  • EZB_ERR_FAIL: on failed

void ezb_aps_secur_enable_distributed_security(bool enable)

Enable or disable distributed security.

Parameters:

enable -- [in] True to enable distributed security, false to disable

bool ezb_aps_secur_is_distributed_security(void)

Check if the distributed security is enabled.

Returns:

True if the distributed security is enabled, false otherwise

ezb_err_t ezb_aps_set_trust_center_address(const ezb_extaddr_t *tc_addr)

Set the APS trust center address.

Parameters:

tc_addr -- [in] The IEEE (extended) address of the trust center

Returns:

  • EZB_ERR_NONE: On success

  • EZB_ERR_INV_STATE: Device is already on a network

void ezb_aps_get_trust_center_address(ezb_extaddr_t *tc_addr)

Get the APS trust center address.

Parameters:

tc_addr -- [out] The IEEE (extended) address of the trust center

ezb_err_t ezb_aps_set_fragment_max_window_size(uint8_t max_window_size)

Set the maximum window size for APS fragmentation.

Note

The window size must be configured with the same value on both the source and destination nodes.

Parameters:

max_window_size -- [in] The maximum number of fragments in a window, ranging from 1 to 8 (default: 8), that can be sent before requiring an acknowledgment.

Returns:

  • EZB_ERR_NONE: Operation successful

  • EZB_ERR_INV_ARG: max_window_size is out of the valid range

uint8_t ezb_aps_get_fragment_max_window_size(void)

Get the current maximum window size used for APS fragmentation.

Returns:

The configured APS fragment window size.

ezb_err_t ezb_aps_set_fragment_interframe_delay(uint8_t delay_ms)

Set the delay, in milliseconds, between sending two blocks of a fragmented transmission.

Parameters:

delay_ms -- [in] Delay in milliseconds between sending consecutive APS fragment blocks, default is 0.

Returns:

  • EZB_ERR_NONE: Operation successful

  • Others: Operation failed

uint8_t ezb_aps_get_fragment_interframe_delay(void)

Get the current interframe delay for APS fragmentation.

Returns:

The interframe delay in milliseconds.

ezb_err_t ezb_aps_set_channel_mask(uint32_t channel_mask)

Set allowable 2.4GHz channels for this device to use for network operations. .

Parameters:

channel_mask -- [in] The 2.4GHz channel mask. Valid channel mask is from 0x00000800 (only channel 11) to 0x07FFF800 (all channels from 11 to 26).

Returns:

  • EZB_ERR_NONE: on success

  • EZB_ERR_INV_ARG: if the channel mask is out of range

uint32_t ezb_aps_get_channel_mask(void)

Get allowable 2.4GHz channels for this device to use for network operations. .

Returns:

The valid 32-bit 2.4GHz channel mask.

void ezb_aps_set_use_extended_panid(const ezb_extpanid_t *extpanid)

Set the extended PAN ID that used for commissioning. .

Parameters:

extpanid -- [in] The pointer to the 64-bit of extended PAN ID, in little-endian.

void ezb_aps_get_use_extended_panid(ezb_extpanid_t *extpanid)

Get the extended PAN ID that used for commissioning. .

Parameters:

extpanid -- [out] The pointer to the 64-bit of extended PAN ID, in little-endian.

5.2.8.1.3. Structures

struct ezb_apsde_data_req_s

APSDE-DATA.request Parameters.

Public Members

ezb_address_t dst_address

The destination address the ASDU is being transferred to.

uint8_t src_endpoint

The individual endpoint of the entity from which the ASDU is being transferred.

uint8_t dst_endpoint

The number of the individual endpoint of the entity to which the ASDU is being transferred or the broadcast endpoint (0xff).

uint16_t cluster_id

The identifier of the object for which this frame is intended.

uint16_t profile_id

The identifier of the profile for which this frame is intended.

uint8_t radius

The distance, in hops, that a transmitted frame will be allowed to travel through the network.

uint8_t alias_seq_num

The sequence number to be used for this NSDU. If the use_alias is true

uint16_t alias_src_addr

The source address to be used for this NSDU. If the use_alias is true

uint8_t tx_options

The transmission options for the ASDU to be transferred, refer to ezb_apsde_tx_opt_t

uint16_t asdu_length

The number of octets comprising the ASDU to be transferred

uint8_t *asdu

The set of octets comprising the ASDU to be transferred.

struct ezb_apsde_data_confirm_s

APSDE-DATA.confirm Parameters.

Public Members

ezb_address_t dst_address

The destination address the ASDU was being transferred to.

uint8_t src_endpoint

The individual endpoint of the entity from which the ASDU was being transferred.

uint8_t dst_endpoint

The number of the individual endpoint of the entity to which the ASDU was being transferred or the broadcast endpoint (0xff).

uint16_t cluster_id

The identifier of the object for which this frame was intended.

uint16_t profile_id

The identifier of the profile for which this frame was intended.

uint8_t status

The status of data confirm. 0: success, otherwise failed

uint16_t asdu_length

The number of octets comprising the ASDU was transferred

uint8_t *asdu

The set of octets comprising the ASDU was transferred.

struct ezb_apsde_data_ind_s

APSDE-DATA.indication Parameters.

Public Members

ezb_address_t dst_address

The address which the ASDU is send to.

ezb_address_t src_address

The address which the ASDU is received from.

uint8_t dst_endpoint

The target endpoint on the local entity to which the ASDU is directed.

uint8_t src_endpoint

The number of the individual endpoint of the entity from which the ASDU has been received.

uint16_t cluster_id

The identifier of the received object.

uint16_t profile_id

The identifier of the profile from which this frame originated.

uint8_t status

The status of the incoming frame processing, 0: on success

uint8_t security_status

UNSECURED if the ASDU was received without any security. SECURED_NWK_KEY if the received ASDU was secured with the NWK key.

uint8_t key_index

This value is only valid when SecurityStatus is set to SECURED_LINK_KEY.

uint8_t lqi

The link quality indication delivered by the NLDE.

uint16_t asdu_length

The number of octets comprising the ASDU being indicated by the APSDE.

uint8_t *asdu

The set of octets comprising the ASDU being indicated by the APSDE.

5.2.8.1.4. Macros

ESP_ZIGBEE_APS_H

5.2.8.1.5. Type Definitions

typedef ezb_addr_mode_t ezb_aps_address_mode_t
typedef enum ezb_apsde_tx_opt_e ezb_apsde_tx_opt_t

Enumeration for APSDE-DATA Request TX options.

typedef enum ezb_apsme_key_type_s ezb_apsme_key_type_t

Enumeration the standard key type of the Transport-Key, Verify-Key and Confirm-Key.

typedef struct ezb_apsde_data_req_s ezb_apsde_data_req_t

APSDE-DATA.request Parameters.

typedef struct ezb_apsde_data_confirm_s ezb_apsde_data_confirm_t

APSDE-DATA.confirm Parameters.

typedef struct ezb_apsde_data_ind_s ezb_apsde_data_ind_t

APSDE-DATA.indication Parameters.

typedef bool (*ezb_apsde_data_indication_callback_t)(const ezb_apsde_data_ind_t *ind)

APSDE data indication application callback.

Param ind:

[in] APSDE-DATA.indication

Return:

  • true: The indication has already been handled

  • false: The indication has not been handled; it will be processed by the stack.

typedef void (*ezb_apsde_data_confirm_callback_t)(const ezb_apsde_data_confirm_t *confirm)

APSDE data confirm application callback.

Param confirm:

[in] APSDE-DATA.confirm

5.2.8.1.6. Enumerations

enum ezb_aps_address_mode_e

Enumeration for address mode in APS layer.

Values:

enumerator EZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT

DstAddress and DstEndpoint not present, only for APSDE-DATA request and confirm

enumerator EZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT

16-bit group address for DstAddress; DstEndpoint not present

enumerator EZB_APS_ADDR_MODE_16_ENDP_PRESENT

16-bit address for DstAddress and DstEndpoint present

enumerator EZB_APS_ADDR_MODE_64_ENDP_PRESENT

64-bit extended address for DstAddress and DstEndpoint present

enum ezb_apsde_tx_opt_e

Enumeration for APSDE-DATA Request TX options.

Values:

enumerator EZB_APSDE_TX_OPT_SECURITY_ENABLED

Security enabled transmission

enumerator EZB_APSDE_TX_OPT_USE_NWK_KEY_R21OBSOLETE

Use NWK key (obsolete)

enumerator EZB_APSDE_TX_OPT_ACK_TX

Acknowledged transmission

enumerator EZB_APSDE_TX_OPT_FRAG_PERMITTED

Fragmentation permitted

enumerator EZB_APSDE_TX_OPT_INC_EXT_NONCE

Include extended nonce in APS security frame

enumerator EZB_APSDE_TX_OPT_USE_ALIAS

The next higher layer may use the UseAlias parameter to request alias usage by NWK layer for the current frame.

enum ezb_apsme_key_type_s

Enumeration the standard key type of the Transport-Key, Verify-Key and Confirm-Key.

Values:

enumerator EZB_APSME_STANDARD_NETWORK_KEY

NWK key

Application link key

Trust-center link key

5.2.8.2. Application Framework

5.2.8.2.1. Header File

5.2.8.2.2. Functions

void ezb_af_node_desc_set_manuf_code(uint16_t manuf_code)

Set the manufacturer code of the node descriptor.

const ezb_af_node_desc_t *ezb_af_get_node_desc(void)

Get the node descriptor of the Zigbee device.

Returns:

Pointer to the node descriptor structure, see ezb_af_node_desc_s

ezb_err_t ezb_af_set_node_power_desc(const ezb_af_node_power_desc_t *desc)

Set the node power descriptor of the Zigbee device.

Parameters:

desc -- Pointer to the node power descriptor structure, see ezb_af_node_power_desc_t

Returns:

Error code, see ezb_err_t

const ezb_af_node_power_desc_t *ezb_af_get_node_power_desc(void)

Get the node power descriptor of the Zigbee device.

Returns:

Pointer to the node power descriptor structure, see ezb_af_node_power_desc_t

const ezb_af_simple_desc_t *ezb_af_get_simple_desc(uint8_t ep_id)

Get the simple descriptor for a specific endpoint.

Parameters:

ep_id -- Endpoint ID

Returns:

Pointer to the simple descriptor structure, see ezb_af_simple_desc_s, or NULL if not found

const ezb_af_simple_desc_t *ezb_af_get_next_simple_desc(const ezb_af_simple_desc_t *simple_desc)

Get the next simple descriptor in the iteration.

Parameters:

simple_desc -- Pointer to the simple descriptor

Returns:

Pointer to the next simple descriptor structure, see ezb_af_simple_desc_s, or NULL if no more descriptors

ezb_err_t ezb_af_dev_set_max_endpoint_num(uint8_t num)

Set the maximum number of endpoints for the device.

Parameters:

num -- Maximum number of endpoints

Returns:

Error code, see ezb_err_t

uint8_t ezb_af_dev_get_max_endpoint_num(void)

Get the maximum number of endpoints for the device.

Returns:

Maximum number of endpoints

ezb_af_device_desc_t ezb_af_create_device_desc(void)

Create a new Zigbee device descriptor.

This function allocates and initializes a new device descriptor structure, which can be used to manage endpoints and context for a Zigbee device.

Returns:

Pointer to the newly created device descriptor, or NULL on failure.

void ezb_af_free_device_desc(ezb_af_device_desc_t dev_desc)

Free a Zigbee device descriptor.

This function frees the memory allocated for a device descriptor.

Parameters:

dev_desc -- Pointer to the device descriptor to free.

ezb_err_t ezb_af_device_add_endpoint_desc(ezb_af_device_desc_t dev_desc, ezb_af_ep_desc_t ep_desc)

Add an endpoint descriptor to a Zigbee device descriptor.

This function links an endpoint descriptor to a device descriptor, allowing the device to manage multiple endpoints.

Parameters:
  • dev_desc -- Pointer to the device descriptor.

  • ep_desc -- Pointer to the endpoint descriptor to add.

Returns:

Error code.

ezb_af_ep_desc_t ezb_af_device_get_endpoint_desc(ezb_af_device_desc_t dev_desc, uint8_t ep_id)

Get an endpoint descriptor from a Zigbee device descriptor.

This function retrieves an endpoint descriptor from a device descriptor based on the specified endpoint ID.

Parameters:
  • dev_desc -- Pointer to the device descriptor.

  • ep_id -- Endpoint ID to search for.

Returns:

Pointer to the endpoint descriptor, or NULL if not found.

ezb_err_t ezb_af_device_desc_register(ezb_af_device_desc_t dev_desc)

Register a Zigbee device descriptor with the stack.

This function registers the device descriptor, which contains endpoint and context information, with the Zigbee stack for further processing and management.

Parameters:

dev_desc -- Pointer to the device descriptor structure to register.

Returns:

Error code.

ezb_af_ep_desc_t ezb_af_create_endpoint_desc(const ezb_af_ep_config_t *ep_config)

Create a Zigbee endpoint descriptor from configuration.

This function allocates and initializes a new endpoint descriptor structure using the provided configuration.

Parameters:

ep_config -- Pointer to the endpoint configuration structure.

Returns:

Pointer to the created endpoint descriptor, or NULL on failure.

void ezb_af_free_endpoint_desc(ezb_af_ep_desc_t ep_desc)

Free a Zigbee endpoint descriptor.

This function frees the memory allocated for a endpoint descriptor.

Parameters:

ep_desc -- Pointer to the endpoint descriptor to free.

ezb_err_t ezb_af_endpoint_add_cluster_desc(ezb_af_ep_desc_t ep_desc, ezb_zcl_cluster_desc_t cluster_desc)

Add a cluster descriptor to a Zigbee endpoint descriptor.

This function links a cluster descriptor to an endpoint descriptor, allowing the endpoint to manage multiple clusters.

Parameters:
  • ep_desc -- Pointer to the endpoint descriptor.

  • cluster_desc -- Pointer to the cluster descriptor to add.

Returns:

Error code

ezb_af_ep_desc_t ezb_af_create_gateway_endpoint(const ezb_af_ep_config_t *ep_config)

Create a gateway endpoint descriptor.

This function allocates and initializes a new gateway endpoint descriptor structure using the provided configuration.

Parameters:

ep_config -- Endpoint configuration.

Returns:

Pointer to the created gateway endpoint descriptor, or NULL on failure.

uint8_t ezb_af_ep_desc_get_ep_id(const ezb_af_ep_desc_t ep_desc)

Get the endpoint ID of a Zigbee endpoint descriptor.

Parameters:

ep_desc -- Pointer to the endpoint descriptor. Must not be NULL.

Returns:

The endpoint ID, or 0 if ep_desc is invalid.

uint16_t ezb_af_ep_desc_get_profile_id(const ezb_af_ep_desc_t ep_desc)

Get the profile ID of a Zigbee endpoint descriptor.

Parameters:

ep_desc -- Pointer to the endpoint descriptor. Must not be NULL.

Returns:

The application profile ID (e.g., 0x0104 for Home Automation), or 0 if ep_desc is invalid.

const ezb_af_simple_desc_t *ezb_af_ep_desc_get_simple_desc(const ezb_af_ep_desc_t ep_desc)

Get the simple descriptor of a Zigbee endpoint descriptor.

Parameters:

ep_desc -- Pointer to the endpoint descriptor. Must not be NULL.

Returns:

Pointer to the simple descriptor, or NULL if ep_desc is invalid.

ezb_af_ep_desc_t ezb_af_device_desc_get_next_endpoint_desc(const ezb_af_device_desc_t dev_desc, const ezb_af_ep_desc_t ep_desc)

Get the next endpoint descriptor from a Zigbee device descriptor.

Parameters:
  • dev_desc -- Pointer to the device descriptor. Must not be NULL.

  • ep_desc -- Pointer to the endpoint descriptor. Must not be NULL.

Returns:

Next endpoint descriptor

ezb_zcl_cluster_desc_t ezb_af_ep_desc_get_next_cluster_desc(const ezb_af_ep_desc_t ep_desc, const ezb_zcl_cluster_desc_t cluster_desc)

Get the next cluster descriptor from a Zigbee endpoint descriptor.

Parameters:
  • ep_desc -- Pointer to the endpoint descriptor. Must not be NULL.

  • cluster_desc -- Pointer to the cluster descriptor. Must not be NULL.

Returns:

Next cluster descriptor

ezb_af_ep_desc_t ezb_af_get_ep_desc(uint8_t ep_id)

Get the endpoint descriptor for a given endpoint ID.

This function retrieves the endpoint descriptor for a registered endpoint. The endpoint must have been previously registered using ezb_af_device_register().

Parameters:

ep_id -- Endpoint ID.

Returns:

Pointer to the endpoint descriptor on success, NULL if endpoint is not found or not registered.

ezb_zcl_cluster_desc_t ezb_af_endpoint_get_cluster_desc(const ezb_af_ep_desc_t ep_desc, uint16_t cluster_id, uint8_t role)

Get a cluster descriptor from an endpoint descriptor.

Parameters:
  • ep_desc -- Pointer to endpoint descriptor.

  • cluster_id -- Cluster identifier.

  • role -- Cluster role (server/client).

Returns:

Pointer to the cluster descriptor, or NULL if not found.

ezb_err_t ezb_af_endpoint_reset(uint8_t ep_id, ezb_af_endpoint_get_default_attr_value_callback_t get_default_value)

Reset the endpoint to default.

Parameters:
  • ep_id -- Endpoint ID that to be reset.

  • get_default_value -- Callback to get the default attribute value from application.

Returns:

Error code

5.2.8.2.3. Unions

union ezb_af_node_power_desc_u
#include <af.h>

Structure to define Zigbee AF Node Power Descriptor.

Public Members

uint8_t current_power_mode

Current power mode, see ezb_af_node_power_mode_t

uint8_t available_power_sources

Available power sources, see ezb_af_node_power_source_t

uint8_t current_power_source

Current power source, see ezb_af_node_power_source_t

uint8_t current_power_source_level

Current power source level, see ezb_af_node_power_source_level_t

struct ezb_af_node_power_desc_u
uint16_t u16

The raw data of the node power descriptor.

5.2.8.2.4. Structures

struct ezb_af_simple_desc_s

Structure to define Zigbee AF Simple Descriptor.

Public Members

uint8_t ep_id

Endpoint identifier.

uint16_t app_profile_id

Application profile identifier.

uint16_t app_device_id

Application device identifier.

uint8_t app_device_version

Application device version.

uint8_t reserved

Reserved bits.

uint8_t app_input_cluster_count

Number of input clusters.

uint8_t app_output_cluster_count

Number of output clusters.

uint16_t *app_cluster_list

Pointer to an array of uint16_t cluster IDs whose total length is (app_input_cluster_count + app_output_cluster_count). Input cluster IDs start from index 0. Output cluster IDs start from index app_input_cluster_count.

struct ezb_af_node_desc_s

Structure to define Zigbee AF Node Descriptor.

Public Members

uint16_t node_flags

Node flags

uint8_t mac_capability_flags

MAC capability flags

uint16_t manufacturer_code

Manufacturer code

uint8_t max_buf_size

Maximum buffer size

uint16_t max_incoming_transfer_size

Maximum incoming transfer size

uint16_t server_mask

Server mask

uint16_t max_outgoing_transfer_size

Maximum outgoing transfer size

uint8_t desc_capability_field

Descriptor capability field

struct ezb_af_ep_config_s

Structure for Zigbee endpoint configuration.

Public Members

uint8_t ep_id

Endpoint.

uint16_t app_profile_id

Application profile identifier.

uint16_t app_device_id

Application device identifier.

uint8_t app_device_version

Application device version.

uint8_t reserved

Reserved.

struct ezb_af_user_cnf_s

User data confirmation structure for Zigbee AF requests. This confirm does not distinguish between profiles. Users should select the appropriate confirm structure based on the specific profile ID, rather than using it directly in application.

Public Members

uint8_t status

Status of the data request (success, failure, etc.).

uint8_t tsn

Transaction sequence number.

ezb_address_t dst_addr

Destination address.

uint8_t src_ep

Source endpoint.

uint8_t dst_ep

Destination endpoint.

uint16_t cluster_id

Cluster ID of the data request.

uint16_t profile_id

Profile ID of the data request.

struct ezb_af_user_cnf_ctx_s

Context for AF user data confirm.

Public Members

ezb_af_user_cnf_callback_t cb

Callback for AF user data confirmation, see ezb_af_user_cnf_callback_t

void *user_ctx

User context.

5.2.8.2.5. Macros

EZB_AF_ENDPOINT_BROADCAST_ID

Zigbee broadcast endpoint value.

EZB_INVALID_DESC
EZB_INVALID_AF_EP_DESC

Invalid endpoint descriptor.

EZB_INVALID_AF_DEVICE_DESC

Invalid device descriptor.

EZB_INVALID_ZCL_EP_LIST

Invalid endpoint list.

5.2.8.2.6. Type Definitions

typedef uint16_t ezb_af_profile_id_t

Represents the application profile ID, see ezb_af_profile_id_e .

typedef union ezb_af_node_power_desc_u ezb_af_node_power_desc_t

Represents the node power descriptor, see ezb_af_node_power_desc_u .

typedef struct ezb_af_simple_desc_s ezb_af_simple_desc_t

Structure to define Zigbee AF Simple Descriptor.

typedef struct ezb_af_node_desc_s ezb_af_node_desc_t

Structure to define Zigbee AF Node Descriptor.

typedef void *ezb_af_ep_desc_t

Zigbee endpoint descriptor.

typedef void *ezb_af_device_desc_t

Zigbee device descriptor.

typedef void *ezb_af_ep_list_t

Linked list node for Zigbee endpoint list (opaque type).

This type represents a list of endpoints associated with a device.

typedef uint8_t ezb_af_ep_id_t

Endpoint identifier.

typedef void (*ezb_af_endpoint_get_default_attr_value_callback_t)(uint8_t ep_id, uint16_t cluster_id, uint8_t cluster_role, uint16_t attr_id, void *attr_value)

A callback for getting the default attribute value from application.

Param ep_id:

[in] Endpoint ID that the attribute belongs to.

Param cluster_id:

[in] Cluster ID that the attribute belongs to.

Param cluster_role:

[in] Cluster role that the attribute belongs to.

Param attr_id:

[in] Attribute ID that the attr_value should be reset.

Param attr_value:

[out] The default value which will be set to the attribute after reset.

typedef struct ezb_af_ep_config_s ezb_af_ep_config_t

Structure for Zigbee endpoint configuration.

typedef struct ezb_af_user_cnf_s ezb_af_user_cnf_t

User data confirmation structure for Zigbee AF requests. This confirm does not distinguish between profiles. Users should select the appropriate confirm structure based on the specific profile ID, rather than using it directly in application.

typedef void (*ezb_af_user_cnf_callback_t)(ezb_af_user_cnf_t *cnf, void *user_ctx)

A callback type for Zigbee AF user data confirmation. .

typedef struct ezb_af_user_cnf_ctx_s ezb_af_user_cnf_ctx_t

Context for AF user data confirm.

5.2.8.2.7. Enumerations

enum ezb_af_profile_id_e

Enumeration of Zigbee application profile IDs. .

Values:

enumerator EZB_AF_ZDP_PROFILE_ID

ZDO profile ID

enumerator EZB_AF_HA_PROFILE_ID

HA profile ID

enumerator EZB_AF_SE_PROFILE_ID

SE profile ID

enumerator EZB_AF_TL_PROFILE_ID

Touchlink profile ID

enumerator EZB_AF_GP_PROFILE_ID

GreenPower profile ID

enum ezb_af_node_power_mode_t

Values of the current power mode of the node power descriptor .

Values:

enumerator EZB_AF_NODE_POWER_MODE_SYNC_ON_WHEN_IDLE

Receiver synchronized with the receiver on when idle subfield of the node descriptor

enumerator EZB_AF_NODE_POWER_MODE_COME_ON_PERIODICALLY

Receiver comes on periodically as defined by the node power descriptor

enumerator EZB_AF_NODE_POWER_MODE_COME_ON_WHEN_SIMULATED

Receiver comes on when stimulated, for example, by a user pressing a button

enum ezb_af_node_power_source_t

Values of the power sources of the node power descriptor .

Values:

enumerator EZB_AF_NODE_POWER_SOURCE_CONSTANT_POWER

Constant (mains) power

enumerator EZB_AF_NODE_POWER_SOURCE_RECHARGEABLE_BATTERY

Rechargeable battery

enumerator EZB_AF_NODE_POWER_SOURCE_DISPOSABLE_BATTERY

Disposable battery

enum ezb_af_node_power_source_level_t

Values of the current power source level of the node power descriptor .

Values:

enumerator EZB_AF_NODE_POWER_SOURCE_LEVEL_CRITICAL

Charge Level: Critical

enumerator EZB_AF_NODE_POWER_SOURCE_LEVEL_33_PERCENT

Charge Level: 33%

enumerator EZB_AF_NODE_POWER_SOURCE_LEVEL_66_PERCENT

Charge Level: 66%

enumerator EZB_AF_NODE_POWER_SOURCE_LEVEL_100_PERCENT

Charge Level: 100%