nRF5 SDK for Thread and Zigbee v3.2.0
Macros
Window Covering Controller

Macros

#define ZB_HA_DEVICE_VER_WINDOW_COVERING_CONTROLLER   0
 
#define ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_CLUSTER_LIST(cluster_list_name,basic_attr_list,identify_attr_list)
 Declare cluster list for window covering controller device. More...
 
#define ZB_ZCL_DECLARE_WINDOW_COVERING_CONTROLLER_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num)
 Declare simple descriptor for window covering controller device. More...
 
#define ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_EP(ep_name, ep_id, cluster_list)
 Declare endpoint for window covering controller device. More...
 
#define ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_CTX(device_ctx, ep_name)   ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name)
 Declare application's device context for Window Covering Controller device. More...
 

Detailed Description

Window Covering Controller device has 3 clusters (see spec 7.6.4):

Window Covering Controller device sample

Example
Declaring clusters
/******************* Declare attributes ************************/
/* Basic cluster attributes data */
zb_uint8_t g_attr_zcl_version = ZB_ZCL_VERSION;
ZB_ZCL_DECLARE_BASIC_ATTRIB_LIST(basic_attr_list, &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);
/********************* Declare device **************************/
ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_CLUSTER_LIST(window_covering_controller_clusters,
basic_attr_list, identify_attr_list);
ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_EP(window_covering_controller_ep,
HA_WINDOW_COVERING_CONTROLLER_ENDPOINT, window_covering_controller_clusters);
ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_CTX(window_covering_controller_ctx,
window_covering_controller_ep);
Registering device list
ZB_AF_REGISTER_DEVICE_CTX(&window_covering_controller_ctx);
ZB_AF_SET_ENDPOINT_HANDLER(HA_WINDOW_COVERING_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->cluster_id)
{
if (cmd_info->is_common_command)
{
switch (cmd_info->cmd_id)
{
TRACE_MSG(TRACE_ZCL3, "Got cluster command 0x%04x", (FMT__D, cmd_info->cluster_id));
/* Process cluster command */
cmd_processed = ZB_TRUE;
break;
default:
TRACE_MSG(TRACE_ZCL2, "Skip general command %hd", (FMT__H, cmd_info->cmd_id));
break;
}
}
else
{
switch (cmd_info->cmd_id)
{
default:
TRACE_MSG(TRACE_ZCL2, "Cluster command %hd, skip it", (FMT__H, cmd_info->cmd_id));
break;
}
}
break;
default:
TRACE_MSG(TRACE_ZCL1,
"SRV role, cluster 0x%d is not supported", (FMT__D, cmd_info->cluster_id));
break;
}

The complete set of Window Covering Controller device samples can be found in /snippet/ha_window_covering_controller_sample.c.

Macro Definition Documentation

#define ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_CLUSTER_LIST (   cluster_list_name,
  basic_attr_list,
  identify_attr_list 
)
Value:
zb_zcl_cluster_desc_t cluster_list_name[] = \
{ \
ZB_ZCL_CLUSTER_DESC( \
ZB_ZCL_ARRAY_SIZE(identify_attr_list, zb_zcl_attr_t), \
(identify_attr_list), \
), \
ZB_ZCL_CLUSTER_DESC( \
ZB_ZCL_ARRAY_SIZE(basic_attr_list, zb_zcl_attr_t), \
(basic_attr_list), \
), \
ZB_ZCL_CLUSTER_DESC( \
0, \
NULL, \
), \
ZB_ZCL_CLUSTER_DESC( \
0, NULL, \
) \
}
ZCL cluster description.
Definition: zb_zcl_common.h:143
Definition: zb_zcl_common.h:241
Definition: zb_zcl_common.h:204
Definition: zb_zcl_common.h:200
#define ZB_ZCL_MANUF_CODE_INVALID
Internal invalid manufacturer code value.
Definition: zb_zcl_common.h:312
ZCL attribute definiton structure.
Definition: zb_zcl_common.h:594
Definition: zb_zcl_common.h:189
Definition: zb_zcl_common.h:187

Declare cluster list for window covering 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_WINDOW_COVERING_CONTROLLER_CTX (   device_ctx,
  ep_name 
)    ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name)

Declare application's device context for Window Covering Controller device.

Parameters
device_ctx- device context variable
ep_name- endpoint variable name
#define ZB_HA_DECLARE_WINDOW_COVERING_CONTROLLER_EP (   ep_name,
  ep_id,
  cluster_list 
)
Value:
ep_id, \
ZB_HA_WINDOW_COVERING_CONTROLLER_IN_CLUSTER_NUM, \
ZB_HA_WINDOW_COVERING_CONTROLLER_OUT_CLUSTER_NUM); \
0, \
NULL, \
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, /* No reporting ctx */ \
0, NULL) /* No CVC ctx */
ZCL cluster description.
Definition: zb_zcl_common.h:143
#define ZB_ZCL_DECLARE_WINDOW_COVERING_CONTROLLER_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num)
Declare simple descriptor for window covering controller device.
Definition: zb_ha_window_covering_controller.h:144
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 endpoint for window covering controller device.

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

< window covering controller device version

#define ZB_ZCL_DECLARE_WINDOW_COVERING_CONTROLLER_SIMPLE_DESC (   ep_name,
  ep_id,
  in_clust_num,
  out_clust_num 
)
Value:
ZB_DECLARE_SIMPLE_DESC(in_clust_num, out_clust_num); \
ZB_AF_SIMPLE_DESC_TYPE(in_clust_num, out_clust_num) simple_desc_##ep_name = \
{ \
ep_id, \
ZB_AF_HA_PROFILE_ID, \
ZB_HA_WINDOW_COVERING_CONTROLLER_DEVICE_ID, \
ZB_HA_DEVICE_VER_WINDOW_COVERING_CONTROLLER, \
0, \
in_clust_num, \
out_clust_num, \
{ \
ZB_ZCL_CLUSTER_ID_BASIC, \
ZB_ZCL_CLUSTER_ID_IDENTIFY, \
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING, \
ZB_ZCL_CLUSTER_ID_IDENTIFY, \
} \
}
#define ZB_DECLARE_SIMPLE_DESC(in_clusters_count, out_clusters_count)
Definition: zboss_api_af.h:185
#define ZB_AF_SIMPLE_DESC_TYPE(in_num, out_num)
Definition: zboss_api_af.h:172

Declare simple descriptor for window covering controller device.

Parameters
ep_name- endpoint variable name
ep_id- endpoint ID
in_clust_num- number of supported input clusters
out_clust_num- number of supported output clusters

Documentation feedback | Developer Zone | Subscribe | Updated