103 lines
7 KiB
C
103 lines
7 KiB
C
#ifndef _PRST_ZB_H_
|
|
#define _PRST_ZB_H_
|
|
|
|
#include "prst_zb_soil_moisture_defs.h"
|
|
|
|
#define PRST_ZIGBEE_ENDPOINT 10
|
|
#define PRST_BASIC_MANUF_NAME "b-parasite"
|
|
|
|
#define PRST_ZB_DEVICE_ID 0x0008
|
|
#define PRST_ZB_DEVICE_VERSION 0
|
|
#define PRST_ZB_IN_CLUSTER_NUM 7
|
|
#define PRST_ZB_OUT_CLUSTER_NUM 0
|
|
#define PRST_ZB_CLUSTER_NUM (PRST_ZB_IN_CLUSTER_NUM + PRST_ZB_OUT_CLUSTER_NUM)
|
|
#define PRST_ZB_ATTR_REPORTING_COUNT 5
|
|
|
|
#define PRST_ZB_DECLARE_CLUSTER_LIST( \
|
|
cluster_list_name, \
|
|
basic_attr_list, \
|
|
identify_attr_list, \
|
|
temp_measurement_attr_list, \
|
|
rel_humidity_attr_list, \
|
|
batt_att_list, \
|
|
soil_moisture_attr_list, \
|
|
illuminance_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), \
|
|
ZB_ZCL_CLUSTER_DESC( \
|
|
ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, \
|
|
ZB_ZCL_ARRAY_SIZE(temp_measurement_attr_list, zb_zcl_attr_t), \
|
|
(temp_measurement_attr_list), \
|
|
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
|
ZB_ZCL_MANUF_CODE_INVALID), \
|
|
ZB_ZCL_CLUSTER_DESC( \
|
|
ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT, \
|
|
ZB_ZCL_ARRAY_SIZE(rel_humidity_attr_list, zb_zcl_attr_t), \
|
|
(rel_humi_attr_list), \
|
|
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
|
ZB_ZCL_MANUF_CODE_INVALID), \
|
|
ZB_ZCL_CLUSTER_DESC( \
|
|
PRST_ZB_ZCL_ATTR_SOIL_MOISTURE_CLUSTER_ID, \
|
|
ZB_ZCL_ARRAY_SIZE(soil_moisture_attr_list, zb_zcl_attr_t), \
|
|
(soil_moisture_attr_list), \
|
|
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
|
ZB_ZCL_MANUF_CODE_INVALID), \
|
|
ZB_ZCL_CLUSTER_DESC( \
|
|
ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, \
|
|
ZB_ZCL_ARRAY_SIZE(illuminance_attr_list, zb_zcl_attr_t), \
|
|
(illuminance_attr_list), \
|
|
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
|
ZB_ZCL_MANUF_CODE_INVALID), \
|
|
ZB_ZCL_CLUSTER_DESC( \
|
|
ZB_ZCL_CLUSTER_ID_POWER_CONFIG, \
|
|
ZB_ZCL_ARRAY_SIZE(batt_attr_list, zb_zcl_attr_t), \
|
|
(batt_attr_list), \
|
|
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
|
ZB_ZCL_MANUF_CODE_INVALID)}
|
|
|
|
#define PRST_ZB_DECLARE_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, \
|
|
PRST_ZB_DEVICE_ID, \
|
|
PRST_ZB_DEVICE_VERSION, \
|
|
0, \
|
|
in_clust_num, \
|
|
out_clust_num, \
|
|
{ \
|
|
ZB_ZCL_CLUSTER_ID_BASIC, \
|
|
ZB_ZCL_CLUSTER_ID_IDENTIFY, \
|
|
ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, \
|
|
ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT, \
|
|
PRST_ZB_ZCL_ATTR_SOIL_MOISTURE_CLUSTER_ID, \
|
|
ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, \
|
|
ZB_ZCL_CLUSTER_ID_POWER_CONFIG, \
|
|
}}
|
|
|
|
#define PRST_ZB_DECLARE_ENDPOINT(ep_name, ep_id, cluster_list) \
|
|
ZBOSS_DEVICE_DECLARE_REPORTING_CTX(reporting_ctx_##ep_name, PRST_ZB_ATTR_REPORTING_COUNT); \
|
|
PRST_ZB_DECLARE_SIMPLE_DESC(ep_name, ep_id, \
|
|
PRST_ZB_IN_CLUSTER_NUM, PRST_ZB_OUT_CLUSTER_NUM); \
|
|
ZB_AF_DECLARE_ENDPOINT_DESC(ep_name, ep_id, ZB_AF_HA_PROFILE_ID, \
|
|
/*reserved_length=*/0, /*reserved_ptr=*/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, \
|
|
PRST_ZB_ATTR_REPORTING_COUNT, reporting_ctx_##ep_name, \
|
|
/*lev_ctrl_count=*/0, /*lev_ctrl_ctx=*/NULL)
|
|
|
|
#endif // _PRST_ZB_H_
|