Macros | |
| #define | ZB_HA_DEVICE_VER_RANGE_EXTENDER 0 |
| #define | ZB_HA_DECLARE_RANGE_EXTENDER_CLUSTER_LIST( cluster_list_name, basic_attr_list, identify_attr_list) |
| Declare cluster list for Range extender device. More... | |
| #define | ZB_HA_DECLARE_RANGE_EXTENDER_EP(ep_name, ep_id, cluster_list) |
| Declare endpoint for Range extender device. More... | |
| #define | ZB_HA_DECLARE_RANGE_EXTENDER_CTX(device_ctx, ep_name) ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name) |
| Declare Range Extender device context. More... | |
Detailed Description
Range Extender device has 2 clusters (see spec 7.4.8):
Range Extender device sample
- Example
Declaring clusters:
/* Basic cluster attributes data */zb_uint8_t g_attr_basic_zcl_version = ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE;zb_uint8_t g_attr_basic_application_version = ZB_ZCL_BASIC_APPLICATION_VERSION_DEFAULT_VALUE;zb_uint8_t g_attr_basic_stack_version = ZB_ZCL_BASIC_STACK_VERSION_DEFAULT_VALUE;zb_uint8_t g_attr_basic_hw_version = ZB_ZCL_BASIC_HW_VERSION_DEFAULT_VALUE;zb_char_t g_attr_basic_manufacturer_name[] = ZB_ZCL_BASIC_MANUFACTURER_NAME_DEFAULT_VALUE;zb_char_t g_attr_basic_model_identifier[] = ZB_ZCL_BASIC_MODEL_IDENTIFIER_DEFAULT_VALUE;zb_char_t g_attr_basic_date_code[] = ZB_ZCL_BASIC_DATE_CODE_DEFAULT_VALUE;zb_uint8_t g_attr_basic_power_source = ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE;zb_char_t g_attr_basic_location_description[] = ZB_ZCL_BASIC_LOCATION_DESCRIPTION_DEFAULT_VALUE;zb_uint8_t g_attr_basic_physical_environment = ZB_ZCL_BASIC_PHYSICAL_ENVIRONMENT_DEFAULT_VALUE;zb_char_t g_attr_sw_build_id[] = ZB_ZCL_BASIC_SW_BUILD_ID_DEFAULT_VALUE;ZB_ZCL_DECLARE_BASIC_ATTRIB_LIST_EXT(basic_attr_list, &g_attr_basic_zcl_version, &g_attr_basic_application_version, &g_attr_basic_stack_version, &g_attr_basic_hw_version, &g_attr_basic_manufacturer_name, &g_attr_basic_model_identifier, &g_attr_basic_date_code, &g_attr_basic_power_source, &g_attr_basic_location_description, &g_attr_basic_physical_environment, &g_attr_sw_build_id);/* Identify cluster attributes data */zb_uint16_t g_attr_identify_identify_time = ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE;ZB_ZCL_DECLARE_IDENTIFY_ATTRIB_LIST(identify_attr_list, &g_attr_identify_identify_time);/********************* Declare device **************************/ZB_HA_DECLARE_RANGE_EXTENDER_CLUSTER_LIST(range_extender_clusters, basic_attr_list, identify_attr_list);ZB_HA_DECLARE_RANGE_EXTENDER_EP(range_extender_ep, ENDPOINT_C, range_extender_clusters);ZB_HA_DECLARE_RANGE_EXTENDER_CTX(device_ctx, range_extender_ep);Registering device list:
/* Register device list */ZB_AF_REGISTER_DEVICE_CTX(&device_ctx);ZB_AF_SET_ENDPOINT_HANDLER(ZB_OUTPUT_ENDPOINT, zcl_specific_cluster_cmd_handler);ZB_ZCL_REGISTER_DEVICE_CB(test_device_interface_cb);Example of command handler:
zb_uint8_t zcl_specific_cluster_cmd_handler(zb_uint8_t param){zb_zcl_parsed_hdr_t cmd_info;zb_uint8_t lqi = ZB_MAC_LQI_UNDEFINED;zb_int8_t rssi = ZB_MAC_RSSI_UNDEFINED;TRACE_MSG(TRACE_APP1, "> zcl_specific_cluster_cmd_handler", (FMT__0));ZB_ZCL_COPY_PARSED_HEADER(param, &cmd_info);g_dst_addr = ZB_ZCL_PARSED_HDR_SHORT_DATA(&cmd_info).source.u.short_addr;ZB_ZCL_DEBUG_DUMP_HEADER(&cmd_info);zb_zdo_get_diag_data(g_dst_addr, &lqi, &rssi);TRACE_MSG(TRACE_APP3, "lqi %hd rssi %d", (FMT__H_H, lqi, rssi));{TRACE_ERROR,"Unsupported \"from server\" command direction",(FMT__0));}TRACE_MSG(TRACE_APP1, "< zcl_specific_cluster_cmd_handler", (FMT__0));return ZB_FALSE;}void test_device_interface_cb(zb_uint8_t param){zb_zcl_device_callback_param_t *device_cb_param =TRACE_MSG(TRACE_APP1, "> test_device_interface_cb param %hd id %hd", (FMT__H_H,param, device_cb_param->device_cb_id));switch (device_cb_param->device_cb_id){device_cb_param->cb_param.set_attr_value_param.attr_id == ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID){if (device_cb_param->cb_param.set_attr_value_param.values.data8){TRACE_MSG(TRACE_APP1, "set ON", (FMT__0));#ifdef ZB_USE_BUTTONSzb_osif_led_on(0);#endif}else{TRACE_MSG(TRACE_APP1, "set OFF", (FMT__0));#ifdef ZB_USE_BUTTONSzb_osif_led_off(0);#endif}}break;default:break;}}
Macro Definition Documentation
◆ ZB_HA_DECLARE_RANGE_EXTENDER_CLUSTER_LIST
| #define ZB_HA_DECLARE_RANGE_EXTENDER_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), \ ) \}
#define ZB_ZCL_MANUF_CODE_INVALIDInternal invalid manufacturer code value. Definition: zb_zcl_common.h:341
Declare cluster list for Range extender 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
◆ ZB_HA_DECLARE_RANGE_EXTENDER_CTX
| #define ZB_HA_DECLARE_RANGE_EXTENDER_CTX | ( | device_ctx, | |
| ep_name | |||
| ) | ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name) |
Declare Range Extender device context.
- Parameters
-
device_ctx - device context variable name. ep_name - endpoint variable name.
◆ ZB_HA_DECLARE_RANGE_EXTENDER_EP
| #define ZB_HA_DECLARE_RANGE_EXTENDER_EP | ( | ep_name, | |
| ep_id, | |||
| cluster_list | |||
| ) |
Value:
ZB_ZCL_DECLARE_RANGE_EXTENDER_SIMPLE_DESC(ep_name, ep_id, \ ZB_HA_RANGE_EXTENDER_IN_CLUSTER_NUM, ZB_HA_RANGE_EXTENDER_OUT_CLUSTER_NUM); \ ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, ep_id, ZB_AF_HA_PROFILE_ID, 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 */
Declare endpoint for Range extender device.
- Parameters
-
ep_name - endpoint variable name ep_id - endpoint ID cluster_list - endpoint cluster list
◆ ZB_HA_DEVICE_VER_RANGE_EXTENDER
| #define ZB_HA_DEVICE_VER_RANGE_EXTENDER 0 |
Range extender device version