b-parasite-esp32/code/nrf-connect/samples/zigbee/include/zb_range_extender.h

113 lines
3.6 KiB
C

/*
* Copyright (c) 2022 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/
#ifndef ZB_RANGE_EXTENDER_H
#define ZB_RANGE_EXTENDER_H 1
/**
* @defgroup ZB_DEFINE_DEVICE_RANGE_EXTENDER Range Extender
* @{
* @details
* - @ref ZB_ZCL_IDENTIFY \n
* - @ref ZB_ZCL_BASIC
*/
/** Range Extender Device ID*/
#define ZB_RANGE_EXTENDER_DEVICE_ID 0x0008
/** Range extender device version */
#define ZB_DEVICE_VER_RANGE_EXTENDER 0
/** @cond internals_doc */
/** Range extender IN (server) clusters number */
#define ZB_RANGE_EXTENDER_IN_CLUSTER_NUM 2
/** Range extender OUT (client) clusters number */
#define ZB_RANGE_EXTENDER_OUT_CLUSTER_NUM 0
#define ZB_RANGE_EXTENDER_CLUSTER_NUM \
(ZB_RANGE_EXTENDER_IN_CLUSTER_NUM + ZB_RANGE_EXTENDER_OUT_CLUSTER_NUM)
/** Number of attribute for reporting on Range extender device */
#define ZB_RANGE_EXTENDER_REPORT_ATTR_COUNT 0
/** @endcond */ /* internals_doc */
/**
* @brief Declare cluster list for Range extender device
* @param cluster_list_name - cluster list variable name
* @param basic_attr_list - attribute list for Basic cluster
* @param identify_attr_list - attribute list for Identify cluster
*/
#define ZB_DECLARE_RANGE_EXTENDER_CLUSTER_LIST( \
cluster_list_name, \
basic_attr_list, \
identify_attr_list) \
zb_zcl_cluster_desc_t cluster_list_name[] = \
{ \
ZB_ZCL_CLUSTER_DESC( \
ZB_ZCL_CLUSTER_ID_IDENTIFY, \
ZB_ZCL_ARRAY_SIZE(identify_attr_list, zb_zcl_attr_t), \
(identify_attr_list), \
ZB_ZCL_CLUSTER_SERVER_ROLE, \
ZB_ZCL_MANUF_CODE_INVALID \
), \
ZB_ZCL_CLUSTER_DESC( \
ZB_ZCL_CLUSTER_ID_BASIC, \
ZB_ZCL_ARRAY_SIZE(basic_attr_list, zb_zcl_attr_t), \
(basic_attr_list), \
ZB_ZCL_CLUSTER_SERVER_ROLE, \
ZB_ZCL_MANUF_CODE_INVALID \
) \
}
/** @cond internals_doc */
/**
* @brief Declare simple descriptor for Range extender device
* @param ep_name - endpoint variable name
* @param ep_id - endpoint ID
* @param in_clust_num - number of supported input clusters
* @param out_clust_num - number of supported output clusters
*/
#define ZB_ZCL_DECLARE_RANGE_EXTENDER_SIMPLE_DESC(ep_name, ep_id, in_clust_num, out_clust_num) \
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_RANGE_EXTENDER_DEVICE_ID, \
ZB_DEVICE_VER_RANGE_EXTENDER, \
0, \
in_clust_num, \
out_clust_num, \
{ \
ZB_ZCL_CLUSTER_ID_BASIC, \
ZB_ZCL_CLUSTER_ID_IDENTIFY \
} \
}
/** @endcond */ /* internals_doc */
/**
* @brief Declare endpoint for Range extender device
* @param ep_name - endpoint variable name
* @param ep_id - endpoint ID
* @param cluster_list - endpoint cluster list
*/
#define ZB_DECLARE_RANGE_EXTENDER_EP(ep_name, ep_id, cluster_list) \
ZB_ZCL_DECLARE_RANGE_EXTENDER_SIMPLE_DESC(ep_name, ep_id, \
ZB_RANGE_EXTENDER_IN_CLUSTER_NUM, ZB_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 */
/*! @} */
#endif /* ZB_RANGE_EXTENDER_H */