Hi
I have an question about use ZB_ZCL_DECLARE_POWER_CONFIG_ATTRIB_LIST macro in case when only one battery used.
I'm trying to declare Power Configuration like this
/** * Power configuration cluster attributes list */ typedef struct zb_zcl_power_config_battery_attrs_s { zb_uint8_t voltage; zb_uint8_t size; zb_uint8_t quantity; zb_uint8_t rated_voltage; zb_uint8_t alarm_mask; zb_uint8_t voltage_min_threshold; } zb_zcl_power_config_battery_attrs_t; static zb_zcl_power_config_battery_attrs_t m_power_config_attr_list; ZB_ZCL_POWER_CONFIG_BATTERY_ATTRIB_LIST( power_config_attr_list, &m_power_config_attr_list.voltage, &m_power_config_attr_list.size, &m_power_config_attr_list.quantity, &m_power_config_attr_list.rated_voltage, &m_power_config_attr_list.alarm_mask, &m_power_config_attr_list.voltage_min_threshold );
But when build this code I get error from preprocessor
macro "ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID" requires 2 arguments, but only 1 given
When I've investigated what happens when macro expanded I seen that ZB_ZCL_DECLARE_POWER_CONFIG_ATTRIB_LIST uses
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID, (voltage))
which is expand into
#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID(data_ptr, bat_num) \ { \ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY##bat_num##_VOLTAGE_ID, \ ZB_ZCL_ATTR_TYPE_U8, \ ZB_ZCL_ATTR_ACCESS_READ_ONLY, \ (zb_voidp_t) data_ptr \ }
So final expression requires battery number but ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID, (voltage)) doesnt suppose battery number.
Anymore if even battery number was assigned in any manner there is no identifier in header file for attribute BatteryVoltage for battery with id 0 or 1...
/** @brief BatteryVoltage attribute, ZCL spec 3.3.2.2.3.1 */ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID = 0x0020, /*! @brief Battery Information 2 attribute set, ZCL spec 3.3.2.2.5 */ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_VOLTAGE_ID = 0x0040, /*! @brief Battery Information 3 attribute set, ZCL spec 3.3.2.2.7 */ ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_VOLTAGE_ID = 0x0060,