3 * Copyright (c) 2021 Project CHIP Authors
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 // THIS FILE IS GENERATED BY ZAP
20 // Prevent multiple inclusion
23 // Default values for the attributes longer than a pointer,
24 // in a form of a binary blob
25 // Separate block is generated for big-endian and little-endian cases.
27 #define GENERATED_DEFAULTS \
29 /* 0 */ 1, 'o', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
30 /* Default for cluster: "General Commissioning", attribute: "FabricId". side: server, big-endian */ /* 8 */ \
31 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
32 /* Default for cluster: "General Commissioning", attribute: "Breadcrumb". side: server, big-endian */ /* 16 */ \
33 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
34 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
35 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
36 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
42 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
45 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
47 /* Default for cluster: "Color Control", attribute: "compensation text". side: server, big-endian */ /* 270 */ \
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
49 /* Default for cluster: "IAS Zone", attribute: "IAS CIE address". side: server, big-endian */ /* 278 */ 0x00, 0x00, \
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
52 /* Default for cluster: "Application Basic", attribute: "vendor name". side: server, big-endian */ /* 310 */ \
53 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
55 0x00, /* Default for cluster: "Application Basic", attribute: "application name". side: server, big-endian */ \
56 /* 342 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
58 0x00, /* Default for cluster: "Application Basic", attribute: "application id". side: server, big-endian */ \
61 #else // !BIGENDIAN_CPU
62 #define GENERATED_DEFAULTS \
64 /* 0 */ 1, 'o', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
65 /* Default for cluster: "General Commissioning", attribute: "FabricId". side: server, little-endian */ /* 8 */ \
66 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
67 0x00, /* Default for cluster: "General Commissioning", attribute: "Breadcrumb". side: server, little-endian */ \
68 /* 16 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
72 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
73 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
74 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
75 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
76 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
77 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
79 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
82 0x00, /* Default for cluster: "Color Control", attribute: "compensation text". side: server, little-endian */ \
83 /* 270 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
84 /* Default for cluster: "IAS Zone", attribute: "IAS CIE address". side: server, little-endian */ /* 278 */ 0x00, 0x00, \
85 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
86 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
87 /* Default for cluster: "Application Basic", attribute: "vendor name". side: server, little-endian */ /* 310 */ \
88 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
89 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
90 0x00, /* Default for cluster: "Application Basic", attribute: "application name". side: server, little-endian */ \
91 /* 342 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
92 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
93 0x00, /* Default for cluster: "Application Basic", attribute: "application id". side: server, little-endian */ \
96 #endif // BIGENDIAN_CPU
98 #define GENERATED_DEFAULTS_COUNT (7)
100 #define ZAP_TYPE(type) ZCL_##type##_ATTRIBUTE_TYPE
101 #define ZAP_LONG_DEFAULTS_INDEX(index) \
103 (uint8_t *) (&generatedDefaults[index]) \
105 #define ZAP_MIN_MAX_DEFAULTS_INDEX(index) \
107 (uint8_t *) (&minMaxDefault[index]) \
110 // This is an array of EmberAfAttributeMinMaxValue structures.
111 #define GENERATED_MIN_MAX_DEFAULT_COUNT 0
112 #define GENERATED_MIN_MAX_DEFAULTS \
116 #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
117 // This is an array of EmberAfAttributeMetadata structures.
118 #define GENERATED_ATTRIBUTE_COUNT 108
119 #define GENERATED_ATTRIBUTES \
121 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Basic (server): cluster revision */ \
122 { 0x0000, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x08 } }, /* Basic (server): ZCL version */ \
123 { 0x0007, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0x00 } }, /* Basic (server): power source */ \
124 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 2 } }, /* Identify (server): cluster revision */ \
126 0x0000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0x0000 } \
127 }, /* Identify (server): identify time */ \
128 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Groups (server): cluster revision */ \
129 { 0x0000, ZAP_TYPE(BITMAP8), 1, 0, { (uint8_t *) 0 } }, /* Groups (server): name support */ \
130 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Scenes (server): cluster revision */ \
131 { 0x0000, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Scenes (server): scene count */ \
132 { 0x0001, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Scenes (server): current scene */ \
133 { 0x0002, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0000 } }, /* Scenes (server): current group */ \
134 { 0x0003, ZAP_TYPE(BOOLEAN), 1, 0, { (uint8_t *) 0x00 } }, /* Scenes (server): scene valid */ \
135 { 0x0004, ZAP_TYPE(BITMAP8), 1, 0, { (uint8_t *) 0 } }, /* Scenes (server): name support */ \
136 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 2 } }, /* On/off (server): cluster revision */ \
137 { 0x0000, ZAP_TYPE(BOOLEAN), 1, 0, { (uint8_t *) 0x00 } }, /* On/off (server): on/off */ \
138 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Level Control (server): cluster revision */ \
139 { 0x0000, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Level Control (server): current level */ \
141 0x0000, ZAP_TYPE(OCTET_STRING), 8, 0, { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(0) } \
142 }, /* General Commissioning (server): FabricId */ \
144 0x0001, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(8) } \
145 }, /* General Commissioning (server): Breadcrumb */ \
146 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* General Commissioning (server): cluster revision */ \
147 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Door Lock (server): cluster revision */ \
148 { 0x0000, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 2 } }, /* Door Lock (server): lock state */ \
149 { 0x0001, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0 } }, /* Door Lock (server): lock type */ \
150 { 0x0002, ZAP_TYPE(BOOLEAN), 1, 0, { (uint8_t *) 0 } }, /* Door Lock (server): actuator enabled */ \
151 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* Barrier Control (server): cluster revision */ \
152 { 0x0001, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0 } }, /* Barrier Control (server): barrier moving state */ \
153 { 0x0002, ZAP_TYPE(BITMAP16), 2, 0, { (uint8_t *) 0 } }, /* Barrier Control (server): barrier safety status */ \
154 { 0x0003, ZAP_TYPE(BITMAP8), 1, 0, { (uint8_t *) 0 } }, /* Barrier Control (server): barrier capabilities */ \
155 { 0x000A, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Barrier Control (server): barrier position */ \
156 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Color Control (server): cluster revision */ \
157 { 0x0000, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Color Control (server): current hue */ \
158 { 0x0001, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Color Control (server): current saturation */ \
159 { 0x0002, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0000 } }, /* Color Control (server): remaining time */ \
160 { 0x0003, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x616B } }, /* Color Control (server): current x */ \
161 { 0x0004, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x607D } }, /* Color Control (server): current y */ \
162 { 0x0005, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): drift compensation */ \
164 0x0006, ZAP_TYPE(CHAR_STRING), 254, 0, { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(16) } \
165 }, /* Color Control (server): compensation text */ \
166 { 0x0007, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x00FA } }, /* Color Control (server): color temperature */ \
167 { 0x0008, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0x01 } }, /* Color Control (server): color mode */ \
169 0x000F, ZAP_TYPE(BITMAP8), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0x00 } \
170 }, /* Color Control (server): color control options */ \
171 { 0x0010, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): number of primaries */ \
172 { 0x0011, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 1 x */ \
173 { 0x0012, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 1 y */ \
174 { 0x0013, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 1 intensity */ \
175 { 0x0015, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 2 x */ \
176 { 0x0016, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 2 y */ \
177 { 0x0017, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 2 intensity */ \
178 { 0x0019, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 3 x */ \
179 { 0x001A, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 3 y */ \
180 { 0x001B, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 3 intensity */ \
181 { 0x0020, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 4 x */ \
182 { 0x0021, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 4 y */ \
183 { 0x0022, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 4 intensity */ \
184 { 0x0024, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 5 x */ \
185 { 0x0025, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 5 y */ \
186 { 0x0026, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 5 intensity */ \
187 { 0x0028, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 6 x */ \
188 { 0x0029, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 6 y */ \
189 { 0x002A, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0 } }, /* Color Control (server): primary 6 intensity */ \
191 0x0030, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
192 }, /* Color Control (server): white point x */ \
194 0x0031, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
195 }, /* Color Control (server): white point y */ \
197 0x0032, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
198 }, /* Color Control (server): color point r x */ \
200 0x0033, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
201 }, /* Color Control (server): color point r y */ \
203 0x0034, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
204 }, /* Color Control (server): color point r intensity */ \
206 0x0036, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
207 }, /* Color Control (server): color point g x */ \
209 0x0037, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
210 }, /* Color Control (server): color point g y */ \
212 0x0038, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
213 }, /* Color Control (server): color point g intensity */ \
215 0x003A, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
216 }, /* Color Control (server): color point b x */ \
218 0x003B, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
219 }, /* Color Control (server): color point b y */ \
221 0x003C, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
222 }, /* Color Control (server): color point b intensity */ \
224 0x400D, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } \
225 }, /* Color Control (server): couple color temp to level min-mireds */ \
227 0x4010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) 0 } \
228 }, /* Color Control (server): start up color temperature mireds */ \
229 { 0x4000, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0000 } }, /* Color Control (server): enhanced current hue */ \
230 { 0x4001, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0x01 } }, /* Color Control (server): enhanced color mode */ \
231 { 0x4002, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Color Control (server): color loop active */ \
232 { 0x4003, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x00 } }, /* Color Control (server): color loop direction */ \
233 { 0x4004, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0019 } }, /* Color Control (server): color loop time */ \
234 { 0x400A, ZAP_TYPE(BITMAP16), 2, 0, { (uint8_t *) 0x0000 } }, /* Color Control (server): color capabilities */ \
235 { 0x400B, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0000 } }, /* Color Control (server): color temp physical min */ \
236 { 0x400C, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0xFEFF } }, /* Color Control (server): color temp physical max */ \
237 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Temperature Measurement (server): cluster revision */ \
238 { 0x0000, ZAP_TYPE(INT16S), 2, 0, { (uint8_t *) 0x8000 } }, /* Temperature Measurement (server): measured value */ \
239 { 0x0001, ZAP_TYPE(INT16S), 2, 0, { (uint8_t *) 0x8000 } }, /* Temperature Measurement (server): min measured value */ \
240 { 0x0002, ZAP_TYPE(INT16S), 2, 0, { (uint8_t *) 0x8000 } }, /* Temperature Measurement (server): max measured value */ \
241 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 2 } }, /* IAS Zone (server): cluster revision */ \
242 { 0x0000, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0x00 } }, /* IAS Zone (server): zone state */ \
243 { 0x0001, ZAP_TYPE(ENUM16), 2, 0, { (uint8_t *) 0 } }, /* IAS Zone (server): zone type */ \
244 { 0x0002, ZAP_TYPE(BITMAP16), 2, 0, { (uint8_t *) 0x0000 } }, /* IAS Zone (server): zone status */ \
246 0x0010, ZAP_TYPE(IEEE_ADDRESS), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(270) } \
247 }, /* IAS Zone (server): IAS CIE address */ \
248 { 0x0011, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0xff } }, /* IAS Zone (server): Zone ID */ \
249 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* Low Power (server): cluster revision */ \
251 0x0000, ZAP_TYPE(OCTET_STRING), 32, 0, { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(278) } \
252 }, /* Application Basic (server): vendor name */ \
253 { 0x0001, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Application Basic (server): vendor id */ \
255 0x0002, ZAP_TYPE(OCTET_STRING), 32, 0, { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(310) } \
256 }, /* Application Basic (server): application name */ \
257 { 0x0003, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Application Basic (server): product id */ \
258 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* Application Basic (server): cluster revision */ \
260 0x0005, ZAP_TYPE(OCTET_STRING), 32, 0, { (uint8_t *) ZAP_LONG_DEFAULTS_INDEX(342) } \
261 }, /* Application Basic (server): application id */ \
262 { 0x0006, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Application Basic (server): catalog vendor id */ \
263 { 0x0007, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0x01 } }, /* Application Basic (server): application satus */ \
264 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* Binding (server): cluster revision */ \
265 { 0x0000, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0 } }, /* Media Playback (server): current state */ \
266 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* Media Playback (server): cluster revision */ \
267 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 0x0001 } }, /* Content Launch (server): cluster revision */ \
268 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 3 } }, /* Basic (server): cluster revision */ \
269 { 0x0000, ZAP_TYPE(INT8U), 1, 0, { (uint8_t *) 0x08 } }, /* Basic (server): ZCL version */ \
270 { 0x0007, ZAP_TYPE(ENUM8), 1, 0, { (uint8_t *) 0x00 } }, /* Basic (server): power source */ \
271 { 0xFFFD, ZAP_TYPE(INT16U), 2, 0, { (uint8_t *) 2 } }, /* On/off (server): cluster revision */ \
272 { 0x0000, ZAP_TYPE(BOOLEAN), 1, 0, { (uint8_t *) 0x00 } }, /* On/off (server): on/off */ \
275 // This is an array of EmberAfCluster structures.
276 #define ZAP_ATTRIBUTE_INDEX(index) ((EmberAfAttributeMetadata *) (&generatedAttributes[index]))
278 // Cluster function static arrays
279 #define GENERATED_FUNCTION_ARRAYS \
280 const EmberAfGenericClusterFunction chipFuncArrayIdentifyServer[] = { \
281 (EmberAfGenericClusterFunction) emberAfIdentifyClusterServerInitCallback, \
282 (EmberAfGenericClusterFunction) emberAfIdentifyClusterServerAttributeChangedCallback, \
284 const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = { \
285 (EmberAfGenericClusterFunction) emberAfGroupsClusterServerInitCallback, \
287 const EmberAfGenericClusterFunction chipFuncArrayScenesServer[] = { \
288 (EmberAfGenericClusterFunction) emberAfScenesClusterServerInitCallback, \
290 const EmberAfGenericClusterFunction chipFuncArrayOnOffServer[] = { \
291 (EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback, \
293 const EmberAfGenericClusterFunction chipFuncArrayLevelControlServer[] = { \
294 (EmberAfGenericClusterFunction) emberAfLevelControlClusterServerInitCallback, \
296 const EmberAfGenericClusterFunction chipFuncArrayDoorLockServer[] = { \
297 (EmberAfGenericClusterFunction) emberAfDoorLockClusterServerAttributeChangedCallback, \
299 const EmberAfGenericClusterFunction chipFuncArrayColorControlServer[] = { \
300 (EmberAfGenericClusterFunction) emberAfColorControlClusterServerInitCallback, \
302 const EmberAfGenericClusterFunction chipFuncArrayIasZoneServer[] = { \
303 (EmberAfGenericClusterFunction) emberAfIasZoneClusterServerInitCallback, \
304 (EmberAfGenericClusterFunction) emberAfIasZoneClusterServerMessageSentCallback, \
305 (EmberAfGenericClusterFunction) emberAfIasZoneClusterServerPreAttributeChangedCallback, \
308 #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
309 #define GENERATED_CLUSTER_COUNT 19
310 #define GENERATED_CLUSTERS \
312 { 0x0000, ZAP_ATTRIBUTE_INDEX(0), 3, 4, ZAP_CLUSTER_MASK(SERVER), NULL }, /* Endpoint: 1, Cluster: Basic (server) */ \
314 ZAP_ATTRIBUTE_INDEX(3), \
317 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
318 chipFuncArrayIdentifyServer }, /* Endpoint: 1, Cluster: Identify (server) */ \
320 ZAP_ATTRIBUTE_INDEX(5), \
323 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
324 chipFuncArrayGroupsServer }, /* Endpoint: 1, Cluster: Groups (server) */ \
326 ZAP_ATTRIBUTE_INDEX(7), \
329 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
330 chipFuncArrayScenesServer }, /* Endpoint: 1, Cluster: Scenes (server) */ \
332 ZAP_ATTRIBUTE_INDEX(13), \
335 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
336 chipFuncArrayOnOffServer }, /* Endpoint: 1, Cluster: On/off (server) */ \
338 ZAP_ATTRIBUTE_INDEX(15), \
341 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
342 chipFuncArrayLevelControlServer }, /* Endpoint: 1, Cluster: Level Control (server) */ \
344 0x0030, ZAP_ATTRIBUTE_INDEX(17), 3, 18, ZAP_CLUSTER_MASK(SERVER), NULL \
345 }, /* Endpoint: 1, Cluster: General Commissioning (server) */ \
347 ZAP_ATTRIBUTE_INDEX(20), \
350 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
351 chipFuncArrayDoorLockServer }, /* Endpoint: 1, Cluster: Door Lock (server) */ \
353 0x0103, ZAP_ATTRIBUTE_INDEX(24), 5, 7, ZAP_CLUSTER_MASK(SERVER), NULL \
354 }, /* Endpoint: 1, Cluster: Barrier Control (server) */ \
356 ZAP_ATTRIBUTE_INDEX(29), \
359 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
360 chipFuncArrayColorControlServer }, /* Endpoint: 1, Cluster: Color Control (server) */ \
362 0x0402, ZAP_ATTRIBUTE_INDEX(80), 4, 8, ZAP_CLUSTER_MASK(SERVER), NULL \
363 }, /* Endpoint: 1, Cluster: Temperature Measurement (server) */ \
365 ZAP_ATTRIBUTE_INDEX(84), \
368 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION) | \
369 ZAP_CLUSTER_MASK(MESSAGE_SENT_FUNCTION), \
370 chipFuncArrayIasZoneServer }, /* Endpoint: 1, Cluster: IAS Zone (server) */ \
372 0x0508, ZAP_ATTRIBUTE_INDEX(90), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
373 }, /* Endpoint: 1, Cluster: Low Power (server) */ \
375 0x050D, ZAP_ATTRIBUTE_INDEX(91), 8, 105, ZAP_CLUSTER_MASK(SERVER), NULL \
376 }, /* Endpoint: 1, Cluster: Application Basic (server) */ \
378 0xF000, ZAP_ATTRIBUTE_INDEX(99), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
379 }, /* Endpoint: 1, Cluster: Binding (server) */ \
381 0xF001, ZAP_ATTRIBUTE_INDEX(100), 2, 4, ZAP_CLUSTER_MASK(SERVER), NULL \
382 }, /* Endpoint: 1, Cluster: Media Playback (server) */ \
384 0xF002, ZAP_ATTRIBUTE_INDEX(102), 1, 2, ZAP_CLUSTER_MASK(SERVER), NULL \
385 }, /* Endpoint: 1, Cluster: Content Launch (server) */ \
386 { 0x0000, ZAP_ATTRIBUTE_INDEX(103), 3, 4, ZAP_CLUSTER_MASK(SERVER), NULL }, /* Endpoint: 2, Cluster: Basic (server) */ \
388 ZAP_ATTRIBUTE_INDEX(106), \
391 ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
392 chipFuncArrayOnOffServer }, /* Endpoint: 2, Cluster: On/off (server) */ \
395 #define ZAP_CLUSTER_INDEX(index) ((EmberAfCluster *) (&generatedClusters[index]))
397 // This is an array of EmberAfEndpointType structures.
398 #define GENERATED_ENDPOINT_TYPES \
400 { ZAP_CLUSTER_INDEX(0), 17, 530 }, { ZAP_CLUSTER_INDEX(17), 2, 7 }, \
403 // Largest attribute size is needed for various buffers
404 #define ATTRIBUTE_LARGEST (254)
406 // Total size of singleton attributes
407 #define ATTRIBUTE_SINGLETONS_SIZE (0)
409 // Total size of attribute storage
410 #define ATTRIBUTE_MAX_SIZE (537)
412 // Number of fixed endpoints
413 #define FIXED_ENDPOINT_COUNT (2)
415 // Array of endpoints that are supported, the data inside
416 // the array is the endpoint number.
417 #define FIXED_ENDPOINT_ARRAY \
422 // Array of profile ids
423 #define FIXED_PROFILE_IDS \
428 // Array of device ids
429 #define FIXED_DEVICE_IDS \
434 // Array of device versions
435 #define FIXED_DEVICE_VERSIONS \
440 // Array of endpoint types supported on each endpoint
441 #define FIXED_ENDPOINT_TYPES \
446 // Array of networks supported on each endpoint
447 #define FIXED_NETWORKS \
452 // Array of EmberAfCommandMetadata structs.
453 #define ZAP_COMMAND_MASK(mask) COMMAND_MASK_##mask
454 #define EMBER_AF_GENERATED_COMMAND_COUNT (111)
455 #define GENERATED_COMMANDS \
457 { 0x0000, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Basic (server): MfgSpecificPing */ \
459 0x0000, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
460 }, /* Basic (server): ResetToFactoryDefaults */ \
462 0x0000, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
463 }, /* Basic (server): ResetToFactoryDefaults */ \
464 { 0x0003, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Identify (server): Identify */ \
465 { 0x0003, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Identify (server): IdentifyQueryResponse */ \
466 { 0x0003, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Identify (server): IdentifyQuery */ \
467 { 0x0004, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (server): AddGroup */ \
468 { 0x0004, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (server): AddGroupResponse */ \
469 { 0x0004, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (server): ViewGroup */ \
470 { 0x0004, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (server): ViewGroupResponse */ \
471 { 0x0004, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (server): GetGroupMembership */ \
472 { 0x0004, 0x02, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (server): GetGroupMembershipResponse */ \
473 { 0x0004, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (server): RemoveGroup */ \
474 { 0x0004, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (server): RemoveGroupResponse */ \
475 { 0x0004, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (server): RemoveAllGroups */ \
476 { 0x0004, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (server): AddGroupIfIdentifying */ \
477 { 0x0005, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): AddScene */ \
478 { 0x0005, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (server): AddSceneResponse */ \
479 { 0x0005, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): ViewScene */ \
480 { 0x0005, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (server): ViewSceneResponse */ \
481 { 0x0005, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): RemoveScene */ \
482 { 0x0005, 0x02, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (server): RemoveSceneResponse */ \
483 { 0x0005, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): RemoveAllScenes */ \
484 { 0x0005, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (server): RemoveAllScenesResponse */ \
485 { 0x0005, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): StoreScene */ \
486 { 0x0005, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (server): StoreSceneResponse */ \
487 { 0x0005, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): RecallScene */ \
488 { 0x0005, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (server): GetSceneMembership */ \
489 { 0x0005, 0x06, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (server): GetSceneMembershipResponse */ \
490 { 0x0006, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (server): Off */ \
491 { 0x0006, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (server): Off */ \
492 { 0x0006, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (server): On */ \
493 { 0x0006, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (server): On */ \
494 { 0x0006, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (server): Toggle */ \
495 { 0x0006, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (server): Toggle */ \
496 { 0x0008, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): MoveToLevel */ \
497 { 0x0008, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): Move */ \
498 { 0x0008, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): Step */ \
499 { 0x0008, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): Stop */ \
500 { 0x0008, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): MoveToLevelWithOnOff */ \
501 { 0x0008, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): MoveWithOnOff */ \
502 { 0x0008, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): StepWithOnOff */ \
503 { 0x0008, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (server): StopWithOnOff */ \
504 { 0x0030, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* General Commissioning (server): SetFabric */ \
505 { 0x0030, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* General Commissioning (server): SetFabricResponse */ \
506 { 0x0030, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* General Commissioning (server): ArmFailSafe */ \
507 { 0x0030, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* General Commissioning (server): ArmFailSafeResponse */ \
508 { 0x0030, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* General Commissioning (server): CommissioningComplete */ \
510 ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* General Commissioning (server): CommissioningCompleteResponse */ \
511 { 0x0101, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Door Lock (server): LockDoor */ \
512 { 0x0101, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Door Lock (server): LockDoorResponse */ \
513 { 0x0101, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Door Lock (server): UnlockDoor */ \
514 { 0x0101, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Door Lock (server): UnlockDoorResponse */ \
516 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): UnlockWithTimeout */ \
518 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): GetLogRecord */ \
520 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): SetPin */ \
522 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): GetPin */ \
524 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): ClearPin */ \
526 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): ClearAllPins */ \
528 0x0101, 0x0B, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
529 }, /* Door Lock (server): SetWeekdaySchedule */ \
531 0x0101, 0x0C, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
532 }, /* Door Lock (server): GetWeekdaySchedule */ \
534 0x0101, 0x0D, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
535 }, /* Door Lock (server): ClearWeekdaySchedule */ \
537 0x0101, 0x0E, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
538 }, /* Door Lock (server): SetYeardaySchedule */ \
540 0x0101, 0x0F, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
541 }, /* Door Lock (server): GetYeardaySchedule */ \
543 0x0101, 0x10, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
544 }, /* Door Lock (server): ClearYeardaySchedule */ \
546 0x0101, 0x11, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
547 }, /* Door Lock (server): SetHolidaySchedule */ \
549 0x0101, 0x12, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
550 }, /* Door Lock (server): GetHolidaySchedule */ \
552 0x0101, 0x13, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
553 }, /* Door Lock (server): ClearHolidaySchedule */ \
555 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): SetUserType */ \
557 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): GetUserType */ \
559 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): SetRfid */ \
561 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): GetRfid */ \
563 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): ClearRfid */ \
565 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Door Lock (server): ClearAllRfids */ \
566 { 0x0103, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Barrier Control (server): BarrierControlGoToPercent */ \
567 { 0x0103, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Barrier Control (server): BarrierControlStop */ \
569 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Color Control (server): MoveToHue */ \
571 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Color Control (server): MoveHue */ \
573 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Color Control (server): StepHue */ \
575 0x0300, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
576 }, /* Color Control (server): MoveToSaturation */ \
578 0x0300, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
579 }, /* Color Control (server): MoveSaturation */ \
581 0x0300, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
582 }, /* Color Control (server): StepSaturation */ \
584 0x0300, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
585 }, /* Color Control (server): MoveToHueAndSaturation */ \
586 { 0x0300, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (server): MoveToColor */ \
587 { 0x0300, 0x08, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (server): MoveColor */ \
588 { 0x0300, 0x09, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (server): StepColor */ \
590 0x0300, 0x0A, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
591 }, /* Color Control (server): MoveToColorTemperature */ \
593 ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) }, /* Color Control (server): StopMoveStep */ \
595 0x0300, 0x4B, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
596 }, /* Color Control (server): MoveColorTemperature */ \
598 0x0300, 0x4C, ZAP_COMMAND_MASK(INCOMING_SERVER) | ZAP_COMMAND_MASK(OUTGOING_SERVER) \
599 }, /* Color Control (server): StepColorTemperature */ \
600 { 0x0500, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* IAS Zone (server): ZoneEnrollResponse */ \
601 { 0x0500, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* IAS Zone (server): ZoneStatusChangeNotification */ \
602 { 0x0500, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* IAS Zone (server): ZoneEnrollRequest */ \
603 { 0x0508, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Low Power (server): Sleep */ \
604 { 0xF000, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Binding (server): Bind */ \
605 { 0xF000, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Binding (server): Unbind */ \
606 { 0xF001, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): PlayRequest */ \
607 { 0xF001, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Media Playback (server): Playback */ \
608 { 0xF001, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): PauseRequest */ \
609 { 0xF001, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): StopRequest */ \
610 { 0xF001, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): StartOverRequest */ \
611 { 0xF001, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): PreviousRequest */ \
612 { 0xF001, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): NextRequest */ \
613 { 0xF001, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): RewindRequest */ \
614 { 0xF001, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): FastForwardRequest */ \
615 { 0xF001, 0x08, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): SkipForwardRequest */ \
616 { 0xF001, 0x09, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (server): SkipBackwardRequest */ \
617 { 0xF002, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Content Launch (server): LaunchContent */ \
618 { 0xF002, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Content Launch (server): LaunchContentResponse */ \
619 { 0xF002, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Content Launch (server): LaunchURL */ \
620 { 0xF002, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Content Launch (server): LaunchURLResponse */ \
623 // Array of EmberAfManufacturerCodeEntry structures for commands.
624 #define GENERATED_COMMAND_MANUFACTURER_CODE_COUNT (1)
625 #define GENERATED_COMMAND_MANUFACTURER_CODES \
630 // This is an array of EmberAfManufacturerCodeEntry structures for clusters.
631 #define GENERATED_CLUSTER_MANUFACTURER_CODE_COUNT (0)
632 #define GENERATED_CLUSTER_MANUFACTURER_CODES \
639 // This is an array of EmberAfManufacturerCodeEntry structures for attributes.
640 #define GENERATED_ATTRIBUTE_MANUFACTURER_CODE_COUNT (0)
641 #define GENERATED_ATTRIBUTE_MANUFACTURER_CODES \
648 // Array of EmberAfPluginReportingEntry structures.
649 #define ZRD(x) EMBER_ZCL_REPORTING_DIRECTION_##x
650 #define ZAP_REPORT_DIRECTION(x) ZRD(x)
652 // Use this macro to check if Reporting plugin is included
653 #define EMBER_AF_PLUGIN_REPORTING
654 // User options for plugin Reporting
655 #define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE (10)
656 #define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS
658 #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (10)
659 #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS \
662 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0006, 0x0000, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
663 }, /* Reporting for cluster: "On/off", attribute: "on/off". side: server */ \
665 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0008, 0x0000, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
666 }, /* Reporting for cluster: "Level Control", attribute: "current level". side: server */ \
668 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0101, 0x0000, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
669 }, /* Reporting for cluster: "Door Lock", attribute: "lock state". side: server */ \
671 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0300, 0x0000, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
672 }, /* Reporting for cluster: "Color Control", attribute: "current hue". side: server */ \
674 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0300, 0x0001, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
675 }, /* Reporting for cluster: "Color Control", attribute: "current saturation". side: server */ \
677 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0300, 0x0003, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
678 }, /* Reporting for cluster: "Color Control", attribute: "current x". side: server */ \
680 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0300, 0x0004, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
681 }, /* Reporting for cluster: "Color Control", attribute: "current y". side: server */ \
683 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0300, 0x0007, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
684 }, /* Reporting for cluster: "Color Control", attribute: "color temperature". side: server */ \
686 ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0402, 0x0000, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
687 }, /* Reporting for cluster: "Temperature Measurement", attribute: "measured value". side: server */ \
689 ZAP_REPORT_DIRECTION(REPORTED), 0x0002, 0x0006, 0x0000, ZAP_CLUSTER_MASK(SERVER), 0x0000, { { 0, 65344, 0 } } \
690 }, /* Reporting for cluster: "On/off", attribute: "on/off". side: server */ \