Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Middlewares/ST/STM32_WPAN/zigbee/stack/include/zcl/zcl.elec.meas.h')
-rw-r--r--Middlewares/ST/STM32_WPAN/zigbee/stack/include/zcl/zcl.elec.meas.h372
1 files changed, 214 insertions, 158 deletions
diff --git a/Middlewares/ST/STM32_WPAN/zigbee/stack/include/zcl/zcl.elec.meas.h b/Middlewares/ST/STM32_WPAN/zigbee/stack/include/zcl/zcl.elec.meas.h
index 005946e72..969506750 100644
--- a/Middlewares/ST/STM32_WPAN/zigbee/stack/include/zcl/zcl.elec.meas.h
+++ b/Middlewares/ST/STM32_WPAN/zigbee/stack/include/zcl/zcl.elec.meas.h
@@ -1,4 +1,10 @@
-/* Copyright [2019 - 2020] Exegin Technologies Limited. All rights reserved. */
+/**
+ * @file zcl.elec.meas.h
+ * @brief ZCL Electrical Measurement cluster header
+ * ZCL 7 section 4.9
+ * ZCL 8 section 4.9
+ * @copyright Copyright [2009 - 2020] Exegin Technologies Limited. All rights reserved.
+ */
#ifndef ZCL_ELEC_MEAS_H
#define ZCL_ELEC_MEAS_H
@@ -163,133 +169,133 @@
/** Electrical Measurement Server Attribute IDs */
enum ZbZclElecMeasSvrAttrT {
- ZCL_ELEC_MEAS_ATTR_MEAS_TYPE = 0x0000,
- ZCL_ELEC_MEAS_ATTR_DC_VOLT = 0x0100,
- ZCL_ELEC_MEAS_ATTR_DC_VOLT_MIN = 0x0101,
- ZCL_ELEC_MEAS_ATTR_DC_VOLT_MAX = 0x0102,
- ZCL_ELEC_MEAS_ATTR_DC_CURRENT = 0x0103,
- ZCL_ELEC_MEAS_ATTR_DC_CURRENT_MIN = 0x0104,
- ZCL_ELEC_MEAS_ATTR_DC_CURRENT_MAX = 0x0105,
- ZCL_ELEC_MEAS_ATTR_DC_POWER = 0x0106,
- ZCL_ELEC_MEAS_ATTR_DC_POWER_MIN = 0x0107,
- ZCL_ELEC_MEAS_ATTR_DC_POWER_MAX = 0x0108,
- ZCL_ELEC_MEAS_ATTR_DC_VOLT_MULTIPLIER = 0x0200,
- ZCL_ELEC_MEAS_ATTR_DC_VOLT_DIVISOR = 0x0201,
- ZCL_ELEC_MEAS_ATTR_DC_CURR_MULTIPLIER = 0x0202,
- ZCL_ELEC_MEAS_ATTR_DC_CURR_DIVISOR = 0x0203,
- ZCL_ELEC_MEAS_ATTR_DC_PWR_MULTIPLIER = 0x0204,
- ZCL_ELEC_MEAS_ATTR_DC_PWR_DIVISOR = 0x0205,
- ZCL_ELEC_MEAS_ATTR_AC_FREQ = 0x0300,
- ZCL_ELEC_MEAS_ATTR_AC_FREQ_MIN = 0x0301,
- ZCL_ELEC_MEAS_ATTR_AC_FREQ_MAX = 0x0302,
- ZCL_ELEC_MEAS_ATTR_NEUTRAL_CURR = 0x0303,
- ZCL_ELEC_MEAS_ATTR_TOTAL_ACTIVE_PWR = 0x0304,
- ZCL_ELEC_MEAS_ATTR_TOTAL_REACTIVE_PWR = 0x0305,
- ZCL_ELEC_MEAS_ATTR_TOTAL_APPARENT_PWR = 0x0306,
- ZCL_ELEC_MEAS_ATTR_1ST_HARM_CURR = 0x0307,
- ZCL_ELEC_MEAS_ATTR_3RD_HARM_CURR = 0x0308,
- ZCL_ELEC_MEAS_ATTR_5TH_HARM_CURR = 0x0309,
- ZCL_ELEC_MEAS_ATTR_7TH_HARM_CURR = 0x030a,
- ZCL_ELEC_MEAS_ATTR_9TH_HARM_CURR = 0x030b,
- ZCL_ELEC_MEAS_ATTR_11TH_HARM_CURR = 0x030c,
- ZCL_ELEC_MEAS_ATTR_PHASE_1ST_HARM_CURR = 0x030d,
- ZCL_ELEC_MEAS_ATTR_PHASE_3RD_HARM_CURR = 0x030e,
- ZCL_ELEC_MEAS_ATTR_PHASE_5TH_HARM_CURR = 0x030f,
- ZCL_ELEC_MEAS_ATTR_PHASE_7TH_HARM_CURR = 0x0310,
- ZCL_ELEC_MEAS_ATTR_PHASE_9TH_HARM_CURR = 0x0311,
- ZCL_ELEC_MEAS_ATTR_PHASE_11TH_HARM_CURR = 0x0312,
- ZCL_ELEC_MEAS_ATTR_AC_FREQ_MULTIPLIER = 0x0400,
- ZCL_ELEC_MEAS_ATTR_AC_FREQ_DIVISOR = 0x0401,
- ZCL_ELEC_MEAS_ATTR_PWR_MULTIPLIER = 0x0402,
- ZCL_ELEC_MEAS_ATTR_PWR_DIVISOR = 0x0403,
- ZCL_ELEC_MEAS_ATTR_HARM_CURR_MULTIPLIER = 0x0404,
- ZCL_ELEC_MEAS_ATTR_PHASE_CURR_MULTIPLIER = 0x0405,
- ZCL_ELEC_MEAS_ATTR_LINE_CURR = 0x0501,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_CURR = 0x0502,
- ZCL_ELEC_MEAS_ATTR_REACTIVE_CURR = 0x0503,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT = 0x0505,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MIN = 0x0506,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MAX = 0x0507,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR = 0x0508,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_MIN = 0x0509,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_MAX = 0x050a,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR = 0x050b,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MIN = 0x050c,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MAX = 0x050d,
- ZCL_ELEC_MEAS_ATTR_REACTIVE_PWR = 0x050e,
- ZCL_ELEC_MEAS_ATTR_APPARENT_PWR = 0x050f,
- ZCL_ELEC_MEAS_ATTR_PWR_FACTOR = 0x0510,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_VOLT_PERIOD = 0x0511,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV_COUNT = 0x0512,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV_COUNT = 0x0513,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_OVER_PERIOD = 0x0514,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_UNDER_PERIOD = 0x0515,
- ZCL_ELEC_MEAS_ATTR_VOLT_SAG_PERIOD = 0x0516,
- ZCL_ELEC_MEAS_ATTR_VOLT_SWELL_PERIOD = 0x0517,
- ZCL_ELEC_MEAS_ATTR_AC_VOLT_MULTIPLIER = 0x0600,
- ZCL_ELEC_MEAS_ATTR_AC_VOLT_DIVISOR = 0x0601,
- ZCL_ELEC_MEAS_ATTR_AC_CURR_MULT = 0x0602,
- ZCL_ELEC_MEAS_ATTR_AC_CURR_DIVISOR = 0x0603,
- ZCL_ELEC_MEAS_ATTR_AC_PWR_MULTIPLIER = 0x0604,
- ZCL_ELEC_MEAS_ATTR_AC_PWR_DIVISOR = 0x0605,
- ZCL_ELEC_MEAS_ATTR_DC_OL_ALARMS_MASK = 0x0700,
- ZCL_ELEC_MEAS_ATTR_DC_VOLT_OL = 0x0701,
- ZCL_ELEC_MEAS_ATTR_DC_CURR_OL = 0x0702,
- ZCL_ELEC_MEAS_ATTR_AC_ALARMS_MASK = 0x0800,
- ZCL_ELEC_MEAS_ATTR_AC_VOLT_OL = 0x0801,
- ZCL_ELEC_MEAS_ATTR_AC_CURR_OL = 0x0802,
- ZCL_ELEC_MEAS_ATTR_AC_ACTIVE_PWR_OL = 0x0803,
- ZCL_ELEC_MEAS_ATTR_AC_REACTIVE_PWR_OL = 0x0804,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV = 0x0805,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV = 0x0806,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_OV = 0x0807,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_UV = 0x0808,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_SAG = 0x0809,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_SWELL = 0x080a,
- ZCL_ELEC_MEAS_ATTR_LINE_CURR_B = 0x0901,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_CURR_B = 0x0902,
- ZCL_ELEC_MEAS_ATTR_REACTIVE_CURR_B = 0x0903,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_B = 0x0905,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MIN_B = 0x0906,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MAX_B = 0x0907,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_B = 0x0908,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_MIN_B = 0x0909,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_MAX_B = 0x090a,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_B = 0x090b,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MIN_B = 0x090c,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MAX_B = 0x090d,
- ZCL_ELEC_MEAS_ATTR_REACTIVE_PWR_B = 0x090e,
- ZCL_ELEC_MEAS_ATTR_APPARENT_PWR_B = 0x090f,
- ZCL_ELEC_MEAS_ATTR_PWR_FACTOR_B = 0x0910,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_VOLT_PERIOD_B = 0x0911,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV_B = 0x0912,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV_B = 0x0913,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_OVER_B = 0x0914,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_UNDER_B = 0x0915,
- ZCL_ELEC_MEAS_ATTR_RMS_SAG_PERIOD_B = 0x0916,
- ZCL_ELEC_MEAS_ATTR_RMS_SWELL_PERIOD_B = 0x0917,
- ZCL_ELEC_MEAS_ATTR_LINE_CURR_C = 0x0a01,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_CURR_C = 0x0a02,
- ZCL_ELEC_MEAS_ATTR_REACTIVE_CURR_C = 0x0a03,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_C = 0x0a05,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MIN_C = 0x0a06,
- ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MAX_C = 0x0a07,
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_C = 0x0a08,
+ ZCL_ELEC_MEAS_ATTR_MEAS_TYPE = 0x0000, /**< MeasurementType */
+ ZCL_ELEC_MEAS_ATTR_DC_VOLT = 0x0100, /**< DCVoltage (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_VOLT_MIN = 0x0101, /**< DCVoltageMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_VOLT_MAX = 0x0102, /**< DCVoltageMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_CURRENT = 0x0103, /**< DCCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_CURRENT_MIN = 0x0104, /**< DCCurrentMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_CURRENT_MAX = 0x0105, /**< DCCurrentMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_POWER = 0x0106, /**< DCPower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_POWER_MIN = 0x0107, /**< DCPowerMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_POWER_MAX = 0x0108, /**< DCPowerMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_VOLT_MULTIPLIER = 0x0200, /**< DCVoltageMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_VOLT_DIVISOR = 0x0201, /**< DCVoltageDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_CURR_MULTIPLIER = 0x0202, /**< DCCurrentMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_CURR_DIVISOR = 0x0203, /**< DCCurrentDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_PWR_MULTIPLIER = 0x0204, /**< DCPowerMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_PWR_DIVISOR = 0x0205, /**< DCPowerDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_FREQ = 0x0300, /**< ACFrequency (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_FREQ_MIN = 0x0301, /**< ACFrequencyMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_FREQ_MAX = 0x0302, /**< ACFrequencyMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_NEUTRAL_CURR = 0x0303, /**< NeutralCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_TOTAL_ACTIVE_PWR = 0x0304, /**< TotalActivePower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_TOTAL_REACTIVE_PWR = 0x0305, /**< TotalReactivePower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_TOTAL_APPARENT_PWR = 0x0306, /**< TotalApparentPower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_1ST_HARM_CURR = 0x0307, /**< Measured1stHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_3RD_HARM_CURR = 0x0308, /**< Measured3rdHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_5TH_HARM_CURR = 0x0309, /**< Measured5thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_7TH_HARM_CURR = 0x030a, /**< Measured7thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_9TH_HARM_CURR = 0x030b, /**< Measured9thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_11TH_HARM_CURR = 0x030c, /**< Measured11thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_1ST_HARM_CURR = 0x030d, /**< MeasuredPhase1stHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_3RD_HARM_CURR = 0x030e, /**< MeasuredPhase3rdHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_5TH_HARM_CURR = 0x030f, /**< MeasuredPhase5thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_7TH_HARM_CURR = 0x0310, /**< MeasuredPhase7thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_9TH_HARM_CURR = 0x0311, /**< MeasuredPhase9thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_11TH_HARM_CURR = 0x0312, /**< MeasuredPhase11thHarmonicCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_FREQ_MULTIPLIER = 0x0400, /**< ACFrequencyMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_FREQ_DIVISOR = 0x0401, /**< ACFrequencyDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PWR_MULTIPLIER = 0x0402, /**< PowerMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PWR_DIVISOR = 0x0403, /**< PowerDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_HARM_CURR_MULTIPLIER = 0x0404, /**< HarmonicCurrentMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PHASE_CURR_MULTIPLIER = 0x0405, /**< PhaseHarmonicCurrentMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_LINE_CURR = 0x0501, /**< LineCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_CURR = 0x0502, /**< ActiveCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_REACTIVE_CURR = 0x0503, /**< ReactiveCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT = 0x0505, /**< RMSVoltage (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MIN = 0x0506, /**< RMSVoltageMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MAX = 0x0507, /**< RMSVoltageMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR = 0x0508, /**< RMSCurrent (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_MIN = 0x0509, /**< RMSCurrentMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_MAX = 0x050a, /**< RMSCurrentMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR = 0x050b, /**< ActivePower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MIN = 0x050c, /**< ActivePowerMin (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MAX = 0x050d, /**< ActivePowerMax (Optional) */
+ ZCL_ELEC_MEAS_ATTR_REACTIVE_PWR = 0x050e, /**< ReactivePower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_APPARENT_PWR = 0x050f, /**< ApparentPower (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PWR_FACTOR = 0x0510, /**< PowerFactor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_VOLT_PERIOD = 0x0511, /**< AverageRMSVoltageMeasurementPeriod (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV_COUNT = 0x0512, /**< AverageRMSOverVoltageCounter (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV_COUNT = 0x0513, /**< AverageRMSUnderVoltageCounter (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_OVER_PERIOD = 0x0514, /**< RMSExtremeOverVoltagePeriod (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_UNDER_PERIOD = 0x0515, /**< RMSExtremeUnderVoltagePeriod (Optional) */
+ ZCL_ELEC_MEAS_ATTR_VOLT_SAG_PERIOD = 0x0516, /**< RMSVoltageSagPeriod (Optional) */
+ ZCL_ELEC_MEAS_ATTR_VOLT_SWELL_PERIOD = 0x0517, /**< RMSVoltageSwellPeriod (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_VOLT_MULTIPLIER = 0x0600, /**< ACVoltageMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_VOLT_DIVISOR = 0x0601, /**< ACVoltageDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_CURR_MULT = 0x0602, /**< ACCurrentMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_CURR_DIVISOR = 0x0603, /**< ACCurrentDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_PWR_MULTIPLIER = 0x0604, /**< ACPowerMultiplier (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_PWR_DIVISOR = 0x0605, /**< ACPowerDivisor (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_OL_ALARMS_MASK = 0x0700, /**< DCOverloadAlarmsMask (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_VOLT_OL = 0x0701, /**< DCVoltageOverload (Optional) */
+ ZCL_ELEC_MEAS_ATTR_DC_CURR_OL = 0x0702, /**< DCCurrentOverload (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_ALARMS_MASK = 0x0800, /**< ACAlarmsMask (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_VOLT_OL = 0x0801, /**< ACVoltageOverload (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_CURR_OL = 0x0802, /**< ACCurrentOverload (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_ACTIVE_PWR_OL = 0x0803, /**< ACActivePowerOverload (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AC_REACTIVE_PWR_OL = 0x0804, /**< ACReactivePowerOverload (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV = 0x0805, /**< AverageRMSOverVoltage (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV = 0x0806, /**< AverageRMSUnderVoltage (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_OV = 0x0807, /**< RMSExtremeOverVoltage (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_UV = 0x0808, /**< RMSExtremeUnderVoltage (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_SAG = 0x0809, /**< RMSVoltageSag (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_SWELL = 0x080a, /**< RMSVoltageSwell (Optional) */
+ ZCL_ELEC_MEAS_ATTR_LINE_CURR_B = 0x0901, /**< LineCurrentPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_CURR_B = 0x0902, /**< ActiveCurrentPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_REACTIVE_CURR_B = 0x0903, /**< ReactiveCurrentPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_B = 0x0905, /**< RMSVoltagePhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MIN_B = 0x0906, /**< RMSVoltageMinPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MAX_B = 0x0907, /**< RMSVoltageMaxPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_B = 0x0908, /**< RMSCurrentPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_MIN_B = 0x0909, /**< RMSCurrentMinPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_MAX_B = 0x090a, /**< RMSCurrentMaxPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_B = 0x090b, /**< ActivePowerPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MIN_B = 0x090c, /**< ActivePowerMinPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MAX_B = 0x090d, /**< ActivePowerMaxPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_REACTIVE_PWR_B = 0x090e, /**< ReactivePowerPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_APPARENT_PWR_B = 0x090f, /**< ApparentPowerPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PWR_FACTOR_B = 0x0910, /**< PowerFactorPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_VOLT_PERIOD_B = 0x0911, /**< AverageRMSVoltageMeasurementPeriodPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV_B = 0x0912, /**< AverageRMSOverVoltageCounterPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV_B = 0x0913, /**< AverageRMSUnderVoltageCounterPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_OVER_B = 0x0914, /**< RMSExtremeOverVoltagePeriodPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_UNDER_B = 0x0915, /**< RMSExtremeUnderVoltagePeriodPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_SAG_PERIOD_B = 0x0916, /**< RMSVoltageSagPeriodPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_SWELL_PERIOD_B = 0x0917, /**< RMSVoltageSwellPeriodPhB (Optional) */
+ ZCL_ELEC_MEAS_ATTR_LINE_CURR_C = 0x0a01, /**< LineCurrentPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_CURR_C = 0x0a02, /**< ActiveCurrentPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_REACTIVE_CURR_C = 0x0a03, /**< ReactiveCurrentPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_C = 0x0a05, /**< RMSVoltagePhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MIN_C = 0x0a06, /**< RMSVoltageMinPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_VOLT_MAX_C = 0x0a07, /**< RMSVoltageMaxPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_C = 0x0a08, /**< RMSCurrentPhC (Optional) */
ZCL_ELEC_MEAS_ATTR_RMS_CURR_MIN_C = 0x0a09, /**< RMSCurrentMinPhC (Optional) */
- ZCL_ELEC_MEAS_ATTR_RMS_CURR_MAX_C = 0x0a0a,
+ ZCL_ELEC_MEAS_ATTR_RMS_CURR_MAX_C = 0x0a0a, /**< RMSCurrentMaxPhC (Optional) */
ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_C = 0x0a0b, /**< ActivePowerPhC (Optional) */
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MIN_C = 0x0a0c,
- ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MAX_C = 0x0a0d,
- ZCL_ELEC_MEAS_ATTR_REACTIVE_PWR_C = 0x0a0e,
- ZCL_ELEC_MEAS_ATTR_APPARENT_PWR_C = 0x0a0f,
- ZCL_ELEC_MEAS_ATTR_PWR_FACTOR_C = 0x0a10,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_VOLT_PERIOD_C = 0x0a11,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV_C = 0x0a12,
- ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV_C = 0x0a13,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_OVER_C = 0x0a14,
- ZCL_ELEC_MEAS_ATTR_RMS_EXT_UNDER_C = 0x0a15,
- ZCL_ELEC_MEAS_ATTR_RMS_SAG_PERIOD_C = 0x0a16,
- ZCL_ELEC_MEAS_ATTR_RMS_SWELL_PERIOD_C = 0x0a17,
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MIN_C = 0x0a0c, /**< ActivePowerMinPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_ACTIVE_PWR_MAX_C = 0x0a0d, /**< ActivePowerMaxPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_REACTIVE_PWR_C = 0x0a0e, /**< ReactivePowerPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_APPARENT_PWR_C = 0x0a0f, /**< ApparentPowerPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_PWR_FACTOR_C = 0x0a10, /**< PowerFactorPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_VOLT_PERIOD_C = 0x0a11, /**< AverageRMSVoltageMeasurementPeriodPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_OV_C = 0x0a12, /**< AverageRMSOverVoltageCounterPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_AVG_RMS_UV_C = 0x0a13, /**< AverageRMSUnderVoltageCounterPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_OVER_C = 0x0a14, /**< RMSExtremeOverVoltagePeriodPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_EXT_UNDER_C = 0x0a15, /**< RMSExtremeUnderVoltagePeriodPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_SAG_PERIOD_C = 0x0a16, /**< RMSVoltageSagPeriodPhC (Optional) */
+ ZCL_ELEC_MEAS_ATTR_RMS_SWELL_PERIOD_C = 0x0a17, /**< RMSVoltageSwellPeriodPhC (Optional) */
};
/* Default Values */
@@ -307,75 +313,125 @@ enum ZbZclElecMeasSvrAttrT {
#define ZCL_ELEC_MEAS_MIN_OL_ALARMS_MASK 0x00
#define ZCL_ELEC_MEAS_MAX_OL_ALARMS_MASK 0x03
-/* Client Generated Commands */
+/* Electrical Measurement Client Generated Commands */
enum {
- ZCL_ELEC_MEAS_CLI_GET_PROFILE_INFO = 0x00,
- ZCL_ELEC_MEAS_CLI_GET_MEAS_PROFILE = 0x01
+ ZCL_ELEC_MEAS_CLI_GET_PROFILE_INFO = 0x00, /* Get Profile Info Command (Optional) */
+ ZCL_ELEC_MEAS_CLI_GET_MEAS_PROFILE = 0x01 /* Get Measurement Profile Command (Optional) */
};
-/* Server Generated Commands */
+/* Electrical Measurement Server Generated Commands */
enum {
- ZCL_ELEC_MEAS_SVR_GET_PROFILE_INFO_RSP = 0x00,
- ZCL_ELEC_MEAS_SVR_GET_MEAS_PROFILE_RSP = 0x01
+ ZCL_ELEC_MEAS_SVR_GET_PROFILE_INFO_RSP = 0x00, /* Get Profile Info Response Command (Optional */
+ ZCL_ELEC_MEAS_SVR_GET_MEAS_PROFILE_RSP = 0x01 /* Get Measurement Profile Response Command (Optional) */
};
+/** Get Measurement Profile command structure */
struct ZbZclElecMeasClientGetMeasProfileReqT {
- uint16_t attr_id;
- uint32_t start_time;
- uint8_t num_intervals;
+ uint16_t attr_id; /**< Attribute ID */
+ uint32_t start_time; /**< Start Time */
+ uint8_t num_intervals; /**< NumberOfIntervals */
};
+/** Get Profile Info response structure */
struct ZbZclElecMeasSvrGetProfileInfoRspT {
- /* Profile count is the total number for supported profile, and the list of
+ /*
+ * Profile count is the total number for supported profile, and the list of
* attributes is the list of attributes being profiled. This relationship has
* been interpreted as profile count holding the number of attributes in
- * attribute list. */
- uint8_t profile_count;
- uint8_t profile_interval_period;
- uint8_t max_num_intervals;
- uint16_t *attr_list;
+ * attribute list.
+ */
+ uint8_t profile_count; /**< Profile Count */
+ uint8_t profile_interval_period; /**< ProfileIntervalPeriod */
+ uint8_t max_num_intervals; /**< MaxNumberOfIntervals */
+ uint16_t *attr_list; /**< ListOfAttributes */
};
+/** Get Measurement Profile response structure */
struct ZbZclElecMeasSvrGetMeasProfileRspT {
- uint32_t start_time;
- uint8_t status;
- uint8_t profile_interval_period;
- uint8_t num_intervals_delivered; /**< Number of intervals in interval_data. */
- uint16_t attr_id; /**< The attribute Id being profiled */
- uint8_t *interval_data;
- /**< Pointer to buffer of interval attribute data in the format as sent over the air
+ uint32_t start_time; /**< StartTime */
+ uint8_t status; /**< Status */
+ uint8_t profile_interval_period; /**< ProfileIntervalPeriod */
+ uint8_t num_intervals_delivered; /**< NumberOfIntervalsDelivered */
+ uint16_t attr_id; /**< Attribute ID */
+ /*
+ * Pointer to buffer of interval attribute data in the format as sent over the air
* (endian conversion already done). If an interval is invalid, it should be set to
- * all f's (e.g. 0xffff for an int16 type). */
- uint16_t interval_len; /**< Octet length of interval_data. */
+ * all f's (e.g. 0xffff for an int16 type).
+ */
+ uint8_t *interval_data; /**< Intervals */
+ uint16_t interval_len; /**< Number of Intervals */
};
+/** Electrical Measurement Server callbacks configuration */
struct ZbZclElecMeasSvrCallbacksT {
enum ZclStatusCodeT (*get_profile_info)(struct ZbZclClusterT *clusterPtr, struct ZbZclAddrInfoT *src_info, void *arg);
+ /**< Callback to application, invoked on receipt of Get Profile Info command. */
enum ZclStatusCodeT (*get_meas_profile)(struct ZbZclClusterT *clusterPtr, struct ZbZclElecMeasClientGetMeasProfileReqT *cmd_req,
struct ZbZclAddrInfoT *src_info, void *arg);
+ /**< Callback to application, invoked on receipt of Get Measurement Profile command. */
};
-/*---------------------------------------------------------------
- * Electrical Measurement Function Declarations
- *---------------------------------------------------------------
+/**
+ * Create a new instance of the Electrical Measurement Client cluster
+ * @param zb Zigbee stack instance
+ * @param endpoint Endpoint on which to create cluster
+ * @return Cluster pointer, or NULL if there is an error
*/
-
-/* Allocation Functions */
struct ZbZclClusterT * ZbZclElecMeasClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);
+
+/**
+ * Create a new instance of the Electrical Measurement Server cluster
+ * @param zb Zigbee stack instance
+ * @param endpoint Endpoint on which to create cluster
+ * @param callbacks Structure containing any callback function pointers for this cluster
+ * @param arg Pointer to application data that will later be provided back to the callback functions when invoked
+ * @return Cluster pointer, or NULL if there is an error
+ */
struct ZbZclClusterT * ZbZclElecMeasServerAlloc(struct ZigBeeT *zb, uint8_t endpoint,
struct ZbZclElecMeasSvrCallbacksT *callbacks, void *arg);
-/* Client Generated Commands */
+/**
+ * Send a Get Profile Info command
+ * @param cluster Cluster instance from which to send this command
+ * @param dst Destination address for request
+ * @param callback Callback function that will be invoked later when the response is received
+ * @param arg Pointer to application data that will later be provided back to the callback function when invoked
+ * @return ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error
+ */
enum ZclStatusCodeT ZbZclElecMeasClientGetProfileInfoReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);
+
+/**
+ * Send a Get Measurement Profile command
+ * @param cluster Cluster instance from which to send this command
+ * @param dst Destination address for request
+ * @param req Get Measurement Profile command structure
+ * @param callback Callback function that will be invoked later when the response is received
+ * @param arg Pointer to application data that will later be provided back to the callback function when invoked
+ * @return ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error
+ */
enum ZclStatusCodeT ZbZclElecMeasClientGetMeasProfileReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclElecMeasClientGetMeasProfileReqT *req,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);
-/* Server Reponse Commands */
+/**
+ * Send a Get Profile Info response
+ * @param cluster Cluster instance from which to send this command
+ * @param dst Destination address for request
+ * @param rsp Get Profile Info response structure
+ * @return ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error
+ */
enum ZclStatusCodeT ZbZclElecMeasServerSendProfileInfoRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst,
struct ZbZclElecMeasSvrGetProfileInfoRspT *rsp);
+
+/**
+ * Send a Get Measurement Profile response
+ * @param cluster Cluster instance from which to send this command
+ * @param dst Destination address for request
+ * @param rsp Get Measurement Profile response structure
+ * @return ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error
+ */
enum ZclStatusCodeT ZbZclElecMeasServerSendMeasProfileRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst,
struct ZbZclElecMeasSvrGetMeasProfileRspT *rsp);
-#endif /* _ZCL_ELEC_MEAS_H */
+#endif