void zcl_on_off_init(zcl_on_off_attrib_list_t *attrib_list) { // init the data attrib_list->data.on_off = false; // init the attribs zcl_set_attrib(&attrib_list->list[0], ZCL_ON_OFF_ATTRIB, ZCL_TYPE_BOOL, ZCL_ACCESS_READ_WRITE, &attrib_list->data.on_off); zcl_set_attrib(&attrib_list->list[1], ZCL_END_MARKER, 0, 0, NULL); }
void zcl_id_init(zcl_id_attrib_list_t *attrib_list) { // init the data values first attrib_list->data.id_time = 0; // init the attribute fields zcl_set_attrib(&attrib_list->list[0], ZCL_ID_ATTRIB, ZCL_TYPE_U16, ZCL_ACCESS_READ_WRITE, &attrib_list->data.id_time); zcl_set_attrib(&attrib_list->list[1], ZCL_END_MARKER, 0, 0, NULL); // init the timer list list_init(id_tmr_list); }
void zcl_basic_init(zcl_basic_attrib_list_t *attrib_list) { char *manuf_id = ZCL_MANUF_ID, *model_id = ZCL_MODEL_ID, *date_code = ZCL_DATE_CODE, *loc_desc = ZCL_LOC_DESC; // init the data values first memset(attrib_list, 0, sizeof(zcl_basic_attrib_list_t)); attrib_list->data.zcl_ver = ZCL_VER_NUM; attrib_list->data.app_ver = ZCL_APP_VER_NUM; attrib_list->data.stack_ver = ZCL_STACK_VER_NUM; attrib_list->data.hw_ver = ZCL_HW_VER_NUM; attrib_list->data.pwr_src = ZCL_BASIC_PWR_ENUM_MAINS_SINGLE; attrib_list->data.phys_env = ZCL_BASIC_PHYS_ENV_UNSPECD; attrib_list->data.dev_enb = true; attrib_list->data.alarm_msk = 0; // init the string data. these need special processing. zcl_set_string_attrib(attrib_list->data.manuf_id, (U8 *)manuf_id, ZCL_MAX_STR_SZ); zcl_set_string_attrib(attrib_list->data.model_id, (U8 *)model_id, ZCL_MAX_STR_SZ); zcl_set_string_attrib(attrib_list->data.date_code, (U8 *)date_code, ZCL_MAX_STR_SZ/2); zcl_set_string_attrib(attrib_list->data.loc_desc, (U8 *)loc_desc, ZCL_MAX_STR_SZ/2); // init the attribute fields zcl_set_attrib(&attrib_list->list[0], ZCL_BASIC_VER, ZCL_TYPE_U8, ZCL_ACCESS_READ_WRITE, &attrib_list->data.zcl_ver); zcl_set_attrib(&attrib_list->list[1], ZCL_BASIC_APP_VER, ZCL_TYPE_U8, ZCL_ACCESS_READ_WRITE, &attrib_list->data.app_ver); zcl_set_attrib(&attrib_list->list[2], ZCL_BASIC_STACK_VER, ZCL_TYPE_U8, ZCL_ACCESS_READ_WRITE, &attrib_list->data.stack_ver); zcl_set_attrib(&attrib_list->list[3], ZCL_BASIC_HW_VER, ZCL_TYPE_U8, ZCL_ACCESS_READ_WRITE, &attrib_list->data.hw_ver); zcl_set_attrib(&attrib_list->list[4], ZCL_BASIC_MANUF_NAME, ZCL_TYPE_CHAR_STRING, ZCL_ACCESS_READ_ONLY, attrib_list->data.manuf_id); zcl_set_attrib(&attrib_list->list[5], ZCL_BASIC_MODEL_ID, ZCL_TYPE_CHAR_STRING, ZCL_ACCESS_READ_ONLY, attrib_list->data.model_id); zcl_set_attrib(&attrib_list->list[6], ZCL_BASIC_DATE_CODE, ZCL_TYPE_CHAR_STRING, ZCL_ACCESS_READ_ONLY, attrib_list->data.date_code); zcl_set_attrib(&attrib_list->list[7], ZCL_BASIC_PWR_SRC, ZCL_TYPE_U8, ZCL_ACCESS_READ_ONLY, &attrib_list->data.pwr_src); zcl_set_attrib(&attrib_list->list[8], ZCL_BASIC_LOC_DESC, ZCL_TYPE_CHAR_STRING, ZCL_ACCESS_READ_WRITE, attrib_list->data.loc_desc); zcl_set_attrib(&attrib_list->list[9], ZCL_BASIC_PHYS_ENV, ZCL_TYPE_U8, ZCL_ACCESS_READ_WRITE, &attrib_list->data.phys_env); zcl_set_attrib(&attrib_list->list[10], ZCL_BASIC_DEV_ENB, ZCL_TYPE_BOOL, ZCL_ACCESS_READ_WRITE, &attrib_list->data.dev_enb); zcl_set_attrib(&attrib_list->list[11], ZCL_BASIC_ALARM_MSK, ZCL_TYPE_U8, ZCL_ACCESS_READ_WRITE, &attrib_list->data.alarm_msk); zcl_set_attrib(&attrib_list->list[12], ZCL_END_MARKER, 0, 0, NULL); }