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

zcl.power.config.h « zcl « include « stack « zigbee « STM32_WPAN « ST « Middlewares - github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6a0e74ada20e50668a6ec44346a71e1c93eb1ab1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
/* Copyright [2009 - 2020] Exegin Technologies Limited. All rights reserved. */

#ifndef ZCL_POWER_H
# define ZCL_POWER_H

/* PICS.ZCL.Power
 * PC.S | True
 * PC.C | True
 *
 * Server Attributes
 * PC.S.A0000 | True
 * PC.S.A0001 | True
 * PC.S.A0010 | False
 * PC.S.A0011 | True
 * PC.S.A0012 | True
 * PC.S.A0013 | False
 * PC.S.A0020 | False
 * PC.S.A0021 | False
 * PC.S.A0030 | False
 * PC.S.A0031 | True
 * PC.S.A0032 | False
 * PC.S.A0033 | False
 * PC.S.A0034 | False
 * PC.S.A0035 | False
 * PC.S.A0036 | False
 * PC.S.A0037 | False
 * PC.S.A0038 | False
 * PC.S.A0039 | False
 * PC.S.A003a | False
 * PC.S.A003b | False
 * PC.S.A003c | False
 * PC.S.A003d | False
 * PC.S.A003e | False
 * PC.S.A0040 | False
 * PC.S.A0041 | False
 * PC.S.A0050 | False
 * PC.S.A0051 | True
 * PC.S.A0052 | False
 * PC.S.A0053 | False
 * PC.S.A0054 | False
 * PC.S.A0055 | False
 * PC.S.A0056 | False
 * PC.S.A0057 | False
 * PC.S.A0058 | False
 * PC.S.A0059 | False
 * PC.S.A005a | False
 * PC.S.A005b | False
 * PC.S.A005c | False
 * PC.S.A005d | False
 * PC.S.A005e | False
 * PC.S.A0060 | False
 * PC.S.A0061 | False
 * PC.S.A0070 | False
 * PC.S.A0071 | True
 * PC.S.A0072 | False
 * PC.S.A0073 | False
 * PC.S.A0074 | False
 * PC.S.A0075 | False
 * PC.S.A0076 | False
 * PC.S.A0077 | False
 * PC.S.A0078 | False
 * PC.S.A0079 | False
 * PC.S.A007a | False
 * PC.S.A007b | False
 * PC.S.A007c | False
 * PC.S.A007d | False
 * PC.S.A007e | False
 * PC.S.Afffd | True
 * PC.S.Afffe | False
 *
 * Client Attributes
 * PC.C.Afffd | True
 * PC.C.Afffe | False
 */

#include "zcl/zcl.h"

/** Power Configuration Server Attributes IDs */
enum ZbZclPowerConfigSvrAttrT {
    ZCL_POWER_CONFIG_ATTR_MAINS_VOLTAGE = 0x0000,
    ZCL_POWER_CONFIG_ATTR_MAINS_FREQ = 0x0001,
    ZCL_POWER_CONFIG_ATTR_MAINS_ALARM_MASK = 0x0010,
    ZCL_POWER_CONFIG_ATTR_MAINS_VOLT_MIN = 0x0011,
    ZCL_POWER_CONFIG_ATTR_MAINS_VOLT_MAX = 0x0012,
    ZCL_POWER_CONFIG_ATTR_MAINS_VOLT_DWELL = 0x0013,
    /* First battery */
    ZCL_POWER_CONFIG_ATTR_BATTERY_VOLTAGE = 0x0020,
    ZCL_POWER_CONFIG_ATTR_BATTERY_PCT = 0x0021,
    ZCL_POWER_CONFIG_ATTR_BATTERY_MFR_NAME = 0x0030,
    ZCL_POWER_CONFIG_ATTR_BATTERY_SIZE = 0x0031,
    ZCL_POWER_CONFIG_ATTR_BATTERY_AHRRATING = 0x0032,
    ZCL_POWER_CONFIG_ATTR_BATTERY_QUANTITY = 0x0033,
    ZCL_POWER_CONFIG_ATTR_BATTERY_RATED_VOLT = 0x0034,
    ZCL_POWER_CONFIG_ATTR_BATTERY_ALARM_MASK = 0x0035,
    ZCL_POWER_CONFIG_ATTR_BATTERY_VOLT_MIN = 0x0036,
    ZCL_POWER_CONFIG_ATTR_BATTERY_VTHRESHOLD1 = 0x0037,
    ZCL_POWER_CONFIG_ATTR_BATTERY_VTHRESHOLD2 = 0x0038,
    ZCL_POWER_CONFIG_ATTR_BATTERY_VTHRESHOLD3 = 0x0039,
    ZCL_POWER_CONFIG_ATTR_BATTERY_PCT_MIN = 0x003A,
    ZCL_POWER_CONFIG_ATTR_BATTERY_PTHRESHOLD1 = 0x003B,
    ZCL_POWER_CONFIG_ATTR_BATTERY_PTHRESHOLD2 = 0x003C,
    ZCL_POWER_CONFIG_ATTR_BATTERY_PTHRESHOLD3 = 0x003D,
    ZCL_POWER_CONFIG_ATTR_BATTERY_ALARM_STATE = 0x003E,
    /* Second battery */
    ZCL_POWER_CONFIG_ATTR_BATTERY2_VOLTAGE = 0x0040,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_PCT = 0x0041,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_MFR_NAME = 0x0050,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_SIZE = 0x0051,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_AHRRATING = 0x0052,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_QUANTITY = 0x0053,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_RATED_VOLT = 0x0054,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_ALARM_MASK = 0x0055,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_VOLT_MIN = 0x0056,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_VTHRESHOLD1 = 0x0057,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_VTHRESHOLD2 = 0x0058,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_VTHRESHOLD3 = 0x0059,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_PCT_MIN = 0x005A,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_PTHRESHOLD1 = 0x005B,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_PTHRESHOLD2 = 0x005C,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_PTHRESHOLD3 = 0x005D,
    ZCL_POWER_CONFIG_ATTR_BATTERY2_ALARM_STATE = 0x005E,
    /* Third battery */
    ZCL_POWER_CONFIG_ATTR_BATTERY3_VOLTAGE = 0x0060,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_PCT = 0x0061,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_MFR_NAME = 0x0070,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_SIZE = 0x0071,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_AHRRATING = 0x0072,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_QUANTITY = 0x0073,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_RATED_VOLT = 0x0074,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_ALARM_MASK = 0x0075,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_VOLT_MIN = 0x0076,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_VTHRESHOLD1 = 0x0077,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_VTHRESHOLD2 = 0x0078,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_VTHRESHOLD3 = 0x0079,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_PCT_MIN = 0x007A,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_PTHRESHOLD1 = 0x007B,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_PTHRESHOLD2 = 0x007C,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_PTHRESHOLD3 = 0x007D,
    ZCL_POWER_CONFIG_ATTR_BATTERY3_ALARM_STATE = 0x007E,
};

#define ZCL_POWER_CONFIG_MAINS_ALARM_MASK_MAINS_LOW         0x01U
#define ZCL_POWER_CONFIG_MAINS_ALARM_MASK_MAINS_HIGH        0x02U
#define ZCL_POWER_CONFIG_MAINS_ALARM_MASK_MAINS_LOST        0x04U
#define ZCL_POWER_CONFIG_MAINS_ALARM_MASK_MAINS_MASK        0x07U

#define ZCL_POWER_CONFIG_BATTERY_SIZE_NO_BATTERY            0x00U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_BUILT_IN              0x01U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_OTHER                 0x02U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_AA                    0x03U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_AAA                   0x04U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_C                     0x05U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_D                     0x06U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_CR2                   0x07U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_CR123A                0x08U
#define ZCL_POWER_CONFIG_BATTERY_SIZE_UNKNOWN               0xffU

#define ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_LOW             0x01U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_BATT_ALARM1     0x02U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_BATT_ALARM2     0x04U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_BATT_ALARM3     0x08U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_MASK            0x0fU

/* Battery Source 1 Alarm State */
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_1_MIN_THRESH   0x00000001U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_1_THRESH1      0x00000002U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_1_THRESH2      0x00000004U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_1_THRESH3      0x00000008U
/* Battery Source 2 Alarm State */
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_2_MIN_THRESH   0x00000400U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_2_THRESH1      0x00000800U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_2_THRESH2      0x00001000U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_2_THRESH3      0x00002000U
/* Battery Source 3 Alarm State */
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_3_MIN_THRESH   0x00100000U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_3_THRESH1      0x00200000U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_3_THRESH2      0x00400000U
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_3_THRESH3      0x00800000U
/* Mains power supply lost */
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_MAIN_LOST      0x40000000U
/* All */
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_MASK           0x40f03c0fU

/* Power Configuration default values */
#define ZCL_POWER_CONFIG_MAINS_ALARM_MASK_DEFAULT      0x00
#define ZCL_POWER_CONFIG_MAINS_VOLT_MIN_DEFAULT        0x0000
#define ZCL_POWER_CONFIG_MAINS_VOLT_MAX_DEFAULT        0xFFFF
#define ZCL_POWER_CONFIG_BATTERY_PCT_DEFAULT           0x00
#define ZCL_POWER_CONFIG_BATTERY_SIZE_DEFAULT          0xFF
#define ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_DEFAULT    0x00
#define ZCL_POWER_CONFIG_BATTERY_VOLT_MIN_DEFAULT      0x0000
#define ZCL_POWER_CONFIG_BATTERY_PCT_MIN_DEFAULT       0x00
#define ZCL_POWER_CONFIG_BATTERY_ALARM_STATE_DEFAULT   0x00000000
#define ZCL_POWER_CONFIG_BATTERY2_SIZE_DEFAULT         0xFF
#define ZCL_POWER_CONFIG_BATTERY3_SIZE_DEFAULT         0xFF

/* Power Configuration Client */
struct ZbZclClusterT * ZbZclPowerConfigClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);

/* Power Configuration Server */
struct ZbZclClusterT * ZbZclPowerConfigServerAlloc(struct ZigBeeT *zb, uint8_t endpoint);

#endif