nRF5 SDK for Thread and Zigbee v3.2.0
Macros
Door Lock Controller

Macros

#define ZB_HA_DEVICE_VER_DOOR_LOCK_CONTROLLER   0
 
#define ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_CLUSTER_LIST(cluster_list_name,basic_attr_list,identify_attr_list)
 Declare cluster list for Door Lock Controller device. More...
 
#define ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_EP(ep_name, ep_id, cluster_list)
 Declare endpointy for Door Lock Controller device. More...
 
#define ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_CTX(device_ctx, ep_name)   ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name)
 Declare Door Lock Controller device context. More...
 

Detailed Description

Door Lock Controller device has 5 clusters (see spec 7.4.12):

Door Lock Controller device sample

Example
Declaring clusters
/******************* Declare attributes ************************/
/* Basic cluster attributes data */
zb_uint8_t g_attr_zcl_version = ZB_ZCL_VERSION;
&g_attr_zcl_version,
&g_attr_power_source);
/* Identify cluster attributes data */
zb_uint16_t g_attr_identify_time = 0;
ZB_ZCL_DECLARE_IDENTIFY_ATTRIB_LIST(identify_attr_list,
&g_attr_identify_time);
/* Groups cluster attributes data */
zb_uint8_t g_attr_name_support = 0;
&g_attr_name_support);
/********************* Declare device **************************/
basic_attr_list,
identify_attr_list,
groups_attr_list);
ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_EP(door_lock_controller_ep,
HA_DOOR_LOCK_CONTROLLER_ENDPOINT,
door_lock_controller_cluster);
ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_CTX(door_lock_controller_cluster_ctx,
door_lock_controller_ep);
Registering device list
ZB_AF_REGISTER_DEVICE_CTX(&door_lock_controller_cluster_ctx);
ZB_AF_SET_ENDPOINT_HANDLER(HA_DOOR_LOCK_CONTROLLER_ENDPOINT, zcl_specific_cluster_cmd_handler);
Example of command handler
zb_uint8_t zcl_specific_cluster_cmd_handler(zb_uint8_t param)
{
zb_buf_t* zcl_cmd_buf = (zb_buf_t *)ZB_BUF_FROM_REF(param);
zb_bool_t cmd_processed = ZB_FALSE;
switch( cmd_info -> cmd_id )
{
TRACE_MSG(TRACE_ZCL3,
"Got cluster command res 0x%04x",
(FMT__D, cmd_info->cmd_id));
TRACE_MSG(TRACE_ZCL1,
"Response: ZB_ZCL_CMD_DOOR_LOCK_UNLOCK_DOOR_RES",
(FMT__0));
/** [Parse Unlock Door response] */
pupayload = ZB_ZCL_DOOR_LOCK_READ_UNLOCK_DOOR_RES(zcl_cmd_buf);
/** [Parse Unlock Door response] */
if( pupayload )
{
if( pupayload -> status != ZB_ZCL_STATUS_SUCCESS )
{
TRACE_MSG(TRACE_ERROR, "Error, unknown response received", (FMT__0));
}
else
{
TRACE_MSG(TRACE_ZCL2, " Command \" Unlock Door\" OK", (FMT__0));
}
}
else
{
TRACE_MSG(TRACE_ERROR, "Error, no payload received", (FMT__0));
}
break;

The complete set of Door Lock Controller device samples can be found in /snippet/ha_door_lock_controller_sample.c

Macro Definition Documentation

#define ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_CLUSTER_LIST (   cluster_list_name,
  basic_attr_list,
  identify_attr_list 
)

Declare cluster list for Door Lock Controller device.

Parameters
cluster_list_name- cluster list variable name
basic_attr_list- attribute list for Basic cluster
identify_attr_list- attribute list for Identify cluster
#define ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_CTX (   device_ctx,
  ep_name 
)    ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name)

Declare Door Lock Controller device context.

Parameters
device_ctx- device context variable name.
ep_name- endpoint definition variable name.
#define ZB_HA_DECLARE_DOOR_LOCK_CONTROLLER_EP (   ep_name,
  ep_id,
  cluster_list 
)
Value:
ZB_ZCL_DECLARE_DOOR_LOCK_CONTROLLER_SIMPLE_DESC(ep_name, ep_id, \
ZB_HA_DOOR_LOCK_CONTROLLER_IN_CLUSTER_NUM, ZB_HA_DOOR_LOCK_CONTROLLER_OUT_CLUSTER_NUM); \
ZB_ZCL_ARRAY_SIZE(cluster_list, zb_zcl_cluster_desc_t), cluster_list, \
(zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \
0, NULL, 0, NULL)
ZCL cluster description.
Definition: zb_zcl_common.h:143
Definition: zboss_api_af.h:287
#define ZB_AF_DECLARE_ENDPOINT_DESC(ep_name,ep_id,profile_id,reserved_length,reserved_ptr,cluster_number,cluster_list,simple_desc,rep_count,rep_ctx,lev_ctrl_count,lev_ctrl_ctx)
Initialize endpoint descriptor.
Definition: zboss_api_af.h:490
Definition: zboss_api_af.h:201

Declare endpointy for Door Lock Controller device.

Parameters
ep_name- endpoint variable name
ep_id- endpoint ID
cluster_list- endpoint cluster list
#define ZB_HA_DEVICE_VER_DOOR_LOCK_CONTROLLER   0

Door Lock Controller device version


Documentation feedback | Developer Zone | Subscribe | Updated