nRF5 SDK for Thread and Zigbee v1.0.0
Macros | Typedefs | Enumerations | Functions
BDB commissioning API

Macros

#define ZB_BDB_COMM_ACTIVE_ENDP_LIST_LEN   4
 
#define BDB_MAX_IDENTIFY_QUERY_RESP_NUMBER   4
 

Typedefs

typedef enum
zb_bdb_commissioning_mode_mask_e 
zb_bdb_commissioning_mode_mask_t
 BDB commissioning mode mask bits.
 
typedef enum
zb_bdb_comm_binding_cb_state_e 
zb_bdb_comm_binding_cb_state_t
 
typedef zb_bool_t(* zb_bdb_comm_binding_callback_t )(zb_int16_t status, zb_ieee_addr_t addr, zb_uint8_t ep, zb_uint16_t cluster)
 BDB finding & binding callback template. More...
 
typedef enum zb_bdb_comm_state_e zb_bdb_comm_state_t
 

Enumerations

enum  zb_bdb_commissioning_mode_mask_e {
  ZB_BDB_INITIALIZATION = 0, ZB_BDB_TOUCHLINK_COMMISSIONING = 1, ZB_BDB_NETWORK_STEERING = 2, ZB_BDB_NETWORK_FORMATION = 4,
  ZB_BDB_FINDING_N_BINDING = 8, ZB_BDB_LAST_COMMISSIONING_STEP = 0x10, ZB_BDB_COMMISSIONING_STOP = 0x20, ZB_BDB_TOUCHLINK_TARGET = 0x40
}
 BDB commissioning mode mask bits. More...
 
enum  zb_bdb_comm_binding_cb_state_e { ZB_BDB_COMM_BIND_SUCCESS = 0, ZB_BDB_COMM_BIND_FAIL = 1, ZB_BDB_COMM_BIND_ASK_USER = 2 }
 
enum  zb_bdb_comm_state_e {
  ZB_BDB_COMM_IDLE = 0, ZB_BDB_COMM_FACTORY_RESET = 1, ZB_BDB_COMM_NWK_STEERING = 2, ZB_BDB_COMM_NWK_STEERING_JOINED = 3,
  ZB_BDB_COMM_FINDING_AND_BINDING = 4, ZB_BDB_COMM_FINDING_AND_BINDING_TARGET = 5
}
 

Functions

zb_bool_t bdb_start_top_level_commissioning (zb_uint8_t mode_mask)
 Start top level commissioning procedure with specified mode mask. More...
 
zb_ret_t zb_bdb_finding_binding_target (zb_uint8_t endpoint)
 Starts EZ-Mode Finding and binding mechanism at the target's endpoint. More...
 
zb_ret_t zb_bdb_finding_binding_initiator (zb_uint8_t endpoint, zb_bdb_comm_binding_callback_t user_binding_cb)
 Start BDB finding & binding procedure on initiator. More...
 
void zb_bdb_finding_binding_target_cancel ()
 
zb_void_t zb_set_bdb_primary_channel_set (zb_uint32_t channel_mask)
 
zb_uint32_t zb_get_bdb_primary_channel_set ()
 
zb_void_t zb_set_bdb_secondary_channel_set (zb_uint32_t channel_mask)
 
zb_uint32_t zb_get_bdb_secondary_channel_set ()
 
zb_void_t zb_bdb_set_legacy_device_support (zb_uint8_t state)
 
zb_void_t zb_set_bdb_commissioning_mode (zb_uint8_t commissioning_mode)
 

Detailed Description

Macro Definition Documentation

#define BDB_MAX_IDENTIFY_QUERY_RESP_NUMBER   4

Identify query responses queue size

#define ZB_BDB_COMM_ACTIVE_ENDP_LIST_LEN   4

Maximum endpoints of the "respondent" that can be served

Typedef Documentation

typedef zb_bool_t( * zb_bdb_comm_binding_callback_t)(zb_int16_t status, zb_ieee_addr_t addr, zb_uint8_t ep, zb_uint16_t cluster)

BDB finding & binding callback template.

Function is used both to interact with user application, get decision if new binding is needed or not, and to report the binding result

Parameters
status- status of the binding (ask user, success or fail)
See Also
zb_bdb_comm_binding_cb_state_t
Parameters
addr- extended address of a device to bind
ep- endpoint of a device to bind
cluster- cluster id to bind
Returns
bool - agree or disagree

Example:

static zb_bool_t finding_binding_cb(zb_int16_t status,
zb_uint16_t cluster)
{
TRACE_MSG(TRACE_ZCL1, "finding_binding_cb status %d addr " TRACE_FORMAT_64 " ep %hd cluster %d",
(FMT__D_A_H_D, status, TRACE_ARG_64(addr), ep, cluster));
return ZB_TRUE;
}
static void trigger_fb_ini(zb_uint8_t unused)
{
ZVUNUSED(unused);
zb_bdb_finding_binding_initiator(DUT_ENDPOINT, finding_binding_cb);
}

List of EZ-Mode binding callback states

List of EZ-Mode commissioning states

Enumeration Type Documentation

List of EZ-Mode binding callback states

Enumerator
ZB_BDB_COMM_BIND_SUCCESS 

Previously user applied bind finished successfully

ZB_BDB_COMM_BIND_FAIL 

Previously user applied bind failed

ZB_BDB_COMM_BIND_ASK_USER 

Ask user whether to perform binding

List of EZ-Mode commissioning states

Enumerator
ZB_BDB_COMM_IDLE 

EZ-Mode isn't invoked

ZB_BDB_COMM_FACTORY_RESET 

EZ-Mode factory reset in progress

ZB_BDB_COMM_NWK_STEERING 

EZ-Mode network steering in progress (scanning or forming network)

ZB_BDB_COMM_NWK_STEERING_JOINED 

EZ-Mode network steering in progress (scanning or forming network finished)

ZB_BDB_COMM_FINDING_AND_BINDING 

EZ-Mode finding and binding in progress (on initiator)

ZB_BDB_COMM_FINDING_AND_BINDING_TARGET 

EZ-Mode finding and binding in progress (on target)

BDB commissioning mode mask bits.

Enumerator
ZB_BDB_TOUCHLINK_COMMISSIONING 

Touchlink: 0 = Do not attempt Touchlink commissioning; 1 = Attempt Touchlink commissioning

ZB_BDB_NETWORK_STEERING 

Network steering: 0 = Do not attempt network steering; 1 = Attempt network steering

ZB_BDB_NETWORK_FORMATION 

Network formation: 0 = Do not attempt to form a network; 1 = Attempt to form a network, according to device type2

ZB_BDB_FINDING_N_BINDING 

Finding & binding: 0 = Do not attempt finding & binding; 1 = Attempt finding & binding

Note
actually this mode does not call Finding & Binding procedure. Use zb_bdb_finding_binding_target or zb_bdb_finding_binding_initiator.

Function Documentation

zb_bool_t bdb_start_top_level_commissioning ( zb_uint8_t  mode_mask)

Start top level commissioning procedure with specified mode mask.

Parameters
mode_mask- commissioning modes, see zb_bdb_commissioning_mode_mask_e

Example:

zb_zdo_app_signal_type_type_t sig = zb_get_app_signal(param, &sg_p);
switch(sig)
{
TRACE_MSG(TRACE_APP1, "Device STARTED OK", (FMT__0));
break;
TRACE_MSG(TRACE_APP1, "Successfull steering", (FMT__0));
break;
}
zb_ret_t zb_bdb_finding_binding_initiator ( zb_uint8_t  endpoint,
zb_bdb_comm_binding_callback_t  user_binding_cb 
)

Start BDB finding & binding procedure on initiator.

Summary: Finding and binding as initiator zb_bdb_finding_binding_initiator() returns RET_OK if procedure was started successfully, error code otherwise. To report procedure status, user callback is called. It may be called several times with Success status and only once with error status. If any error appears, finding and binding stops.

Parameters
endpoint- initiator endpoint
user_binding_cb- user callback, see zb_bdb_comm_binding_callback_t
Returns
bool - RET_OK or error code

Example:

static zb_bool_t finding_binding_cb(zb_int16_t status,
zb_uint16_t cluster)
{
TRACE_MSG(TRACE_ZCL1, "finding_binding_cb status %d addr " TRACE_FORMAT_64 " ep %hd cluster %d",
(FMT__D_A_H_D, status, TRACE_ARG_64(addr), ep, cluster));
return ZB_TRUE;
}
static void trigger_fb_ini(zb_uint8_t unused)
{
ZVUNUSED(unused);
zb_bdb_finding_binding_initiator(DUT_ENDPOINT, finding_binding_cb);
}
zb_ret_t zb_bdb_finding_binding_target ( zb_uint8_t  endpoint)

Starts EZ-Mode Finding and binding mechanism at the target's endpoint.

Put device into identifying mode; default duration is 3 minutes.

Parameters
endpoint- target endpoint
Returns
RET_OK if procedure was successfully started
Note
: endpoint should be registered on target

Example

ZB_ZDO_STARTUP_COMPLETE(zb_uint8_t param)
{
if (ZB_GET_APP_SIGNAL_STATUS(param) == 0)
{
switch(sig)
{
TRACE_MSG(TRACE_APS1, "Device STARTED OK", (FMT__0));
break;
TRACE_MSG(TRACE_APS1, "Successfull steering", (FMT__0));
break;
default:
TRACE_MSG(TRACE_APS1, "Unknown signal", (FMT__0));
}
}
else
{
TRACE_MSG(TRACE_ERROR, "Device started FAILED status %d", (FMT__D, ZB_GET_APP_SIGNAL_STATUS(param)));
}
}
void zb_bdb_finding_binding_target_cancel ( )

Cancel previously started Finding & Binding procedure on target

zb_void_t zb_bdb_set_legacy_device_support ( zb_uint8_t  state)

Enable Zigbee PRO complaint commissioning support

Parameters
state- 1 to enable trust center require key exchange; 0 - disable.
zb_uint32_t zb_get_bdb_primary_channel_set ( )

Get the primary channel set for the BDB energy scan.

Returns
channel_mask - Channel mask.
zb_uint32_t zb_get_bdb_secondary_channel_set ( )

Get the secondary channel set for the BDB energy scan.

Returns
channel_mask - Channel mask.
zb_void_t zb_set_bdb_commissioning_mode ( zb_uint8_t  commissioning_mode)

Set commissioning mode.

Parameters
commissioning_mode- bitfield with the bdbCommissioningMode attribute. Set 1 to the corresponding bit to enable, 0 to disable: Bit number Description 0 Enables/disables Touchlink commissioning 1 Attempt network steering 2 Attempt to form a network 3 Attempt finding & binding
See Also
zb_bdb_commissioning_mode_mask_t
zb_void_t zb_set_bdb_primary_channel_set ( zb_uint32_t  channel_mask)

Set the primary channel set for the BDB energy scan. Beacon request will be send on these channels

Parameters
channel_mask- Channel mask.
zb_void_t zb_set_bdb_secondary_channel_set ( zb_uint32_t  channel_mask)

Set the secondary channel set for the BDB energy scan. Beacon request will be send on these channels if no network found after energy scan on the primary channels.

Parameters
channel_mask- Channel mask.

Documentation feedback | Developer Zone | Subscribe | Updated