Developing with ZBOSS for Zigbee
General parameters to be set before start

Typedefs

typedef void(* zb_set_manufacturer_code_cb_t) (zb_ret_t status)
 
typedef zb_uint8_t nwk_requested_timeout_t
 Type for End Device (ED) timeout request. More...
 
typedef zb_uint8_t nwk_keepalive_supported_method_t
 Type for ZC/ZR supported keepalive methods. More...
 

Functions

void zb_set_channel_mask (zb_uint32_t channel_mask)
 
void zb_set_rx_on_when_idle (zb_bool_t rx_on)
 
void zb_set_long_address (const zb_ieee_addr_t addr)
 
void zb_set_pan_id (zb_uint16_t pan_id)
 Set 16-bit PAN ID. More...
 
void zb_set_node_descriptor_manufacturer_code_req (zb_uint16_t manuf_code, zb_set_manufacturer_code_cb_t cb)
 
void zb_set_extended_pan_id (const zb_ext_pan_id_t ext_pan_id)
 
void zb_set_network_coordinator_role (zb_uint32_t channel_mask)
 
void zb_set_network_router_role (zb_uint32_t channel_mask)
 
void zb_set_network_ed_role (zb_uint32_t channel_mask)
 
void zb_set_network_coordinator_role_legacy (zb_uint32_t channel_mask)
 
void zb_set_network_router_role_legacy (zb_uint32_t channel_mask)
 
void zb_set_network_ed_role_legacy (zb_uint32_t channel_mask)
 
void zb_channel_list_init (zb_channel_list_t channel_list)
 
zb_ret_t zb_channel_list_add (zb_channel_list_t channel_list, zb_uint8_t page_num, zb_uint32_t channel_mask)
 
void zb_set_max_children (zb_uint8_t max_children)
 
void zb_set_ed_timeout (zb_uint_t to)
 
void zb_set_keepalive_timeout (zb_uint_t to)
 
void zb_set_keepalive_mode (nwk_keepalive_supported_method_t mode)
 

Channel pages' numbers

Note: These values were members of enum zb_channel_page_num_e type but were converted to a set of macros due to MISRA violations.

#define ZB_CHANNEL_PAGE0_2_4_GHZ   0U
 
#define ZB_CHANNEL_PAGE23_SUB_GHZ   23U
 
#define ZB_CHANNEL_PAGE24_SUB_GHZ   24U
 
#define ZB_CHANNEL_PAGE25_SUB_GHZ   25U
 
#define ZB_CHANNEL_PAGE26_SUB_GHZ   26U
 
#define ZB_CHANNEL_PAGE27_SUB_GHZ   27U
 
#define ZB_CHANNEL_PAGE28_SUB_GHZ   28U
 
#define ZB_CHANNEL_PAGE29_SUB_GHZ   29U
 
#define ZB_CHANNEL_PAGE30_SUB_GHZ   30U
 
#define ZB_CHANNEL_PAGE31_SUB_GHZ   31U
 

End Device (ED) timeout request

#define ED_AGING_TIMEOUT_10SEC   0U
 
#define ED_AGING_TIMEOUT_2MIN   1U
 
#define ED_AGING_TIMEOUT_4MIN   2U
 
#define ED_AGING_TIMEOUT_8MIN   3U
 
#define ED_AGING_TIMEOUT_16MIN   4U
 
#define ED_AGING_TIMEOUT_32MIN   5U
 
#define ED_AGING_TIMEOUT_64MIN   6U
 
#define ED_AGING_TIMEOUT_128MIN   7U
 
#define ED_AGING_TIMEOUT_256MIN   8U
 
#define ED_AGING_TIMEOUT_512MIN   9U
 
#define ED_AGING_TIMEOUT_1024MIN   10U
 
#define ED_AGING_TIMEOUT_2048MIN   11U
 
#define ED_AGING_TIMEOUT_4096MIN   12U
 
#define ED_AGING_TIMEOUT_8192MIN   13U
 
#define ED_AGING_TIMEOUT_16384MIN   14U
 

ZC/ZR supported keepalive methods

#define ED_KEEPALIVE_DISABLED   0U
 
#define MAC_DATA_POLL_KEEPALIVE   1U
 
#define ED_TIMEOUT_REQUEST_KEEPALIVE   2U
 
#define BOTH_KEEPALIVE_METHODS   3U
 

Detailed Description

Macro Definition Documentation

◆ BOTH_KEEPALIVE_METHODS

#define BOTH_KEEPALIVE_METHODS   3U

ZC/ZR supports both MAC Data Poll and ED Timeout Request as Keepalive methods

◆ ED_AGING_TIMEOUT_1024MIN

#define ED_AGING_TIMEOUT_1024MIN   10U

1024 minutes

◆ ED_AGING_TIMEOUT_10SEC

#define ED_AGING_TIMEOUT_10SEC   0U

10 second timeout

◆ ED_AGING_TIMEOUT_128MIN

#define ED_AGING_TIMEOUT_128MIN   7U

128 minutes

◆ ED_AGING_TIMEOUT_16384MIN

#define ED_AGING_TIMEOUT_16384MIN   14U

16384 minutes

◆ ED_AGING_TIMEOUT_16MIN

#define ED_AGING_TIMEOUT_16MIN   4U

16 minutes

◆ ED_AGING_TIMEOUT_2048MIN

#define ED_AGING_TIMEOUT_2048MIN   11U

2048 minutes

◆ ED_AGING_TIMEOUT_256MIN

#define ED_AGING_TIMEOUT_256MIN   8U

256 minutes

◆ ED_AGING_TIMEOUT_2MIN

#define ED_AGING_TIMEOUT_2MIN   1U

2 minutes

◆ ED_AGING_TIMEOUT_32MIN

#define ED_AGING_TIMEOUT_32MIN   5U

32 minutes

◆ ED_AGING_TIMEOUT_4096MIN

#define ED_AGING_TIMEOUT_4096MIN   12U

4096 minutes

◆ ED_AGING_TIMEOUT_4MIN

#define ED_AGING_TIMEOUT_4MIN   2U

4 minutes

◆ ED_AGING_TIMEOUT_512MIN

#define ED_AGING_TIMEOUT_512MIN   9U

512 minutes

◆ ED_AGING_TIMEOUT_64MIN

#define ED_AGING_TIMEOUT_64MIN   6U

64 minutes

◆ ED_AGING_TIMEOUT_8192MIN

#define ED_AGING_TIMEOUT_8192MIN   13U

8192 minutes

◆ ED_AGING_TIMEOUT_8MIN

#define ED_AGING_TIMEOUT_8MIN   3U

8 minutes

◆ ED_KEEPALIVE_DISABLED

#define ED_KEEPALIVE_DISABLED   0U

ZC/ZR doesn't support Keepalive feature

◆ ED_TIMEOUT_REQUEST_KEEPALIVE

#define ED_TIMEOUT_REQUEST_KEEPALIVE   2U

ZC/ZR supports Keepalive feature by means of ED Timeout Request

◆ MAC_DATA_POLL_KEEPALIVE

#define MAC_DATA_POLL_KEEPALIVE   1U

ZC/ZR supports Keepalive feature by means of MAC Data Poll

Typedef Documentation

◆ nwk_keepalive_supported_method_t

Type for ZC/ZR supported keepalive methods.

Holds one of keepalive_supported_method. Kept only for backward compatibility as keepalive_supported_method were declared previously as enum. Can be removed in future releases.

◆ nwk_requested_timeout_t

Type for End Device (ED) timeout request.

Deprecated:
holds one of nwk_requested_timeout. Kept only for backward compatibility as nwk_requested_timeout were declared previously as enum. Can be removed in future releases.

◆ zb_set_manufacturer_code_cb_t

typedef void(* zb_set_manufacturer_code_cb_t) (zb_ret_t status)

Declares callback that is called after setting manufacturer code

Parameters
status- status of manufacturer code setting

Function Documentation

◆ zb_channel_list_add()

zb_ret_t zb_channel_list_add ( zb_channel_list_t  channel_list,
zb_uint8_t  page_num,
zb_uint32_t  channel_mask 
)

Add channel mask for a specified channel page in a channel list

Parameters
channel_list- pointer to a channel list
page_num- channel page number - channel_pages_numbers
channel_mask- Zigbee channel mask
Returns
RET_OK if ok, else error code

◆ zb_channel_list_init()

void zb_channel_list_init ( zb_channel_list_t  channel_list)

Initialize a channel list

Parameters
channel_list- pointer to a channel list

◆ zb_set_channel_mask()

void zb_set_channel_mask ( zb_uint32_t  channel_mask)

Set channel mask on device.

Parameters
channel_mask- Zigbee channel mask

Example:

zb_set_channel((1l<<13) | (1l<<14));

◆ zb_set_ed_timeout()

void zb_set_ed_timeout ( zb_uint_t  to)

Set end device timeout.

Use it on End Device to specify End Device timeout period used in ED Timeout request.

Parameters
to- index in nwk_requested_timeout

◆ zb_set_extended_pan_id()

void zb_set_extended_pan_id ( const zb_ext_pan_id_t  ext_pan_id)

Set APS Use Extended Pan ID (apsUseExtendedPANID attribute)

Note: that function is obsolete. Use zb_set_use_extended_pan_id() instead!

Parameters
ext_pan_id- Long (64-bit) Extended Pan ID

◆ zb_set_keepalive_mode()

void zb_set_keepalive_mode ( nwk_keepalive_supported_method_t  mode)

Set keep alive mode.

Use it to set which method a device should use in poll context.

Parameters
mode- the keepalive mode a device wants to set

◆ zb_set_keepalive_timeout()

void zb_set_keepalive_timeout ( zb_uint_t  to)

Set keep alive timeout.

Use it on End Device to specify how often device should poll its parent.

Parameters
to- timeout, in beacon intervals

◆ zb_set_long_address()

void zb_set_long_address ( const zb_ieee_addr_t  addr)

Set 64-bit long address

Parameters
addr- long address structure

◆ zb_set_max_children()

void zb_set_max_children ( zb_uint8_t  max_children)

Set the maximum number of connected devices. Used for coordinators and routers

Deprecated:
This function will be removed in the next Major release after March 2025 Use zb_nwk_set_max_ed_capacity() instead
Parameters
max_children- maximum number of connected devices

◆ zb_set_network_coordinator_role()

void zb_set_network_coordinator_role ( zb_uint32_t  channel_mask)

Initiate device as a Zigbee 3.0 (not SE!) coordinator

Parameters
channel_mask- Zigbee channel mask
Note
BDB channel sets that are set using zb_set_bdb_primary_channel_set() and zb_set_bdb_secondary_channel_set(), are always reset to zero after changing network role of the device.

◆ zb_set_network_coordinator_role_legacy()

void zb_set_network_coordinator_role_legacy ( zb_uint32_t  channel_mask)

Initiate device as a legacy (pre-r21) Zigbee coordinator

Parameters
channel_mask- Zigbee channel mask

◆ zb_set_network_ed_role()

void zb_set_network_ed_role ( zb_uint32_t  channel_mask)

Initiate device as a Zigbee Zigbee 3.0 (not SE!) End Device

Parameters
channel_mask- Zigbee channel mask
Note
BDB channel sets that are set using zb_set_bdb_primary_channel_set() and zb_set_bdb_secondary_channel_set(), are always reset to zero after changing network role of the device.

◆ zb_set_network_ed_role_legacy()

void zb_set_network_ed_role_legacy ( zb_uint32_t  channel_mask)

Initiate device as a legacy (pre-r21) Zigbee End Device

Parameters
channel_mask- Zigbee channel mask

◆ zb_set_network_router_role()

void zb_set_network_router_role ( zb_uint32_t  channel_mask)

Initiate device as a Zigbee Zigbee 3.0 (not SE!) router

Parameters
channel_mask- Zigbee channel mask
Note
BDB channel sets that are set using zb_set_bdb_primary_channel_set() and zb_set_bdb_secondary_channel_set(), are always reset to zero after changing network role of the device.

◆ zb_set_network_router_role_legacy()

void zb_set_network_router_role_legacy ( zb_uint32_t  channel_mask)

Initiate device as a legacy (pre-r21) Zigbee router

Parameters
channel_mask- Zigbee channel mask

◆ zb_set_node_descriptor_manufacturer_code_req()

void zb_set_node_descriptor_manufacturer_code_req ( zb_uint16_t  manuf_code,
zb_set_manufacturer_code_cb_t  cb 
)

Set Manufacturer code of Node Descriptor Request

Parameters
manuf_code- manufacturer code to set
cb- callback that is called after manufacturer code setting

◆ zb_set_pan_id()

void zb_set_pan_id ( zb_uint16_t  pan_id)

Set 16-bit PAN ID.

Parameters
[in]pan_id- PAN ID

◆ zb_set_rx_on_when_idle()

void zb_set_rx_on_when_idle ( zb_bool_t  rx_on)

Set RxOnWhenIdle attribute

Parameters
rx_on- attribute value

Example:

/* Set RX on when idle configuration, switch device to rx off */
zb_set_rx_on_when_idle
void zb_set_rx_on_when_idle(zb_bool_t rx_on)
ZB_FALSE
#define ZB_FALSE
Definition: zb_types.h:349