Developing with ZBOSS
ZBOSS kernel initialization and start

Macros

#define ZB_INIT(trace_comment)
 

Functions

zb_ret_t zboss_start (void)
 ZBOSS start function. More...
 
zb_ret_t zboss_start_no_autostart (void)
 
void zboss_start_continue (void)
 

Detailed Description

Macro Definition Documentation

◆ ZB_INIT

#define ZB_INIT (   trace_comment)
Value:
{ \
ZB_CHECK_LIBRARY(); \
zb_init((zb_char_t *)trace_comment); \
ZB_SET_NS_UART_CB_STUB(); \
}
char zb_char_t
Project-local char type.
Definition: zb_types.h:126

Global stack initialization.

To be called from MAIN() at start.

Usual initialization sequence: ZB_INIT(), then assign some IB values, then zboss_start().

Parameters
trace_comment- trace file name component (valid for Unix, ignored at MCU)

Example:

ZB_INIT("zdo_zc");

See any sample

Function Documentation

◆ zboss_start()

zb_ret_t zboss_start ( void  )

ZBOSS start function.

Typical device start: init, load some parameters from nvram and proceed with startup.

Startup means either Formation (for ZC), rejoin or discovery/association join. After startup complete zboss_signal_handler callback is called, so application will know when to do some useful things.

Precondition: stack must be inited by ZB_INIT() call. ZB_INIT() sets default IB parameters, so caller has a chance to change some of them. Note that NVRAM will be loaded after zboss_start() call.

Note
ZB is not looped in this routine. Instead, it schedules callback and returns. Caller must run zboss_main_loop() after this routine.
Returns
RET_OK on success.

◆ zboss_start_no_autostart()

zb_ret_t zboss_start_no_autostart ( void  )

Start ZBOSS with only minimal initialization, without starting commissioning.

This function initializes scheduler and buffers pool, but not MAC and upper layers. Typically zboss_start_no_autostart() is used when application wants to do something before starting joining the network.

For example, you can use this function if it is needed to enable leds, timers or any other devices on periphery to work with them before starting working in a network. It's also usefull if you want to run something localy during joining.

Application should later call ZBOSS commissioning initiation - for instance, bdb_start_top_level_commissioning()

To finish node initialization without triggering commissioning call bdb_start_top_level_commissioning() with commissioning mask 0 (no steering, no formation, initialization only).

Returns
RET_OK on success.