9046160fc9582f7f39ae791c414a4069d5a53a4d
[platform/upstream/connectedhomeip.git] / src / darwin / Framework / CHIP / gen / endpoint_config.h
1 /*
2  *
3  *    Copyright (c) 2021 Project CHIP Authors
4  *
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
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *
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.
16  */
17
18 // THIS FILE IS GENERATED BY ZAP
19
20 // Prevent multiple inclusion
21 #pragma once
22
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.
26 #if BIGENDIAN_CPU
27 #define GENERATED_DEFAULTS                                                                                                         \
28     {                                                                                                                              \
29     }
30
31 #else // !BIGENDIAN_CPU
32 #define GENERATED_DEFAULTS                                                                                                         \
33     {                                                                                                                              \
34     }
35
36 #endif // BIGENDIAN_CPU
37
38 #define GENERATED_DEFAULTS_COUNT (0)
39
40 #define ZAP_TYPE(type) ZCL_##type##_ATTRIBUTE_TYPE
41 #define ZAP_LONG_DEFAULTS_INDEX(index)                                                                                             \
42     {                                                                                                                              \
43         (uint8_t *) (&generatedDefaults[index])                                                                                    \
44     }
45 #define ZAP_MIN_MAX_DEFAULTS_INDEX(index)                                                                                          \
46     {                                                                                                                              \
47         (uint8_t *) (&minMaxDefault[index])                                                                                        \
48     }
49
50 // This is an array of EmberAfAttributeMinMaxValue structures.
51 #define GENERATED_MIN_MAX_DEFAULT_COUNT 0
52 #define GENERATED_MIN_MAX_DEFAULTS                                                                                                 \
53     {                                                                                                                              \
54     }
55
56 #define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
57 // This is an array of EmberAfAttributeMetadata structures.
58 #define GENERATED_ATTRIBUTE_COUNT 11
59 #define GENERATED_ATTRIBUTES                                                                                                       \
60     {                                                                                                                              \
61         { 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 } }, /* Basic (client): cluster revision */     \
62             {                                                                                                                      \
63                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 2 }                                         \
64             }, /* Identify (client): cluster revision */                                                                           \
65             {                                                                                                                      \
66                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
67             }, /* Groups (client): cluster revision */                                                                             \
68             {                                                                                                                      \
69                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
70             }, /* Scenes (client): cluster revision */                                                                             \
71             {                                                                                                                      \
72                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 2 }                                         \
73             }, /* On/off (client): cluster revision */                                                                             \
74             {                                                                                                                      \
75                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
76             }, /* Level Control (client): cluster revision */                                                                      \
77             {                                                                                                                      \
78                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
79             }, /* Door Lock (client): cluster revision */                                                                          \
80             {                                                                                                                      \
81                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
82             }, /* Barrier Control (client): cluster revision */                                                                    \
83             {                                                                                                                      \
84                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
85             }, /* Color Control (client): cluster revision */                                                                      \
86             {                                                                                                                      \
87                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
88             }, /* Temperature Measurement (client): cluster revision */                                                            \
89             {                                                                                                                      \
90                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
91             }, /* Binding (client): cluster revision */                                                                            \
92     }
93
94 // This is an array of EmberAfCluster structures.
95 #define ZAP_ATTRIBUTE_INDEX(index) ((EmberAfAttributeMetadata *) (&generatedAttributes[index]))
96
97 // Cluster function static arrays
98 #define GENERATED_FUNCTION_ARRAYS
99
100 #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
101 #define GENERATED_CLUSTER_COUNT 11
102 #define GENERATED_CLUSTERS                                                                                                         \
103     {                                                                                                                              \
104         { 0x0000, ZAP_ATTRIBUTE_INDEX(0), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Basic (client) */       \
105             {                                                                                                                      \
106                 0x0003, ZAP_ATTRIBUTE_INDEX(1), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
107             }, /* Endpoint: 1, Cluster: Identify (client) */                                                                       \
108             { 0x0004, ZAP_ATTRIBUTE_INDEX(2), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Groups (client) */  \
109             { 0x0005, ZAP_ATTRIBUTE_INDEX(3), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Scenes (client) */  \
110             { 0x0006, ZAP_ATTRIBUTE_INDEX(4), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: On/off (client) */  \
111             {                                                                                                                      \
112                 0x0008, ZAP_ATTRIBUTE_INDEX(5), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
113             }, /* Endpoint: 1, Cluster: Level Control (client) */                                                                  \
114             {                                                                                                                      \
115                 0x0101, ZAP_ATTRIBUTE_INDEX(6), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
116             }, /* Endpoint: 1, Cluster: Door Lock (client) */                                                                      \
117             {                                                                                                                      \
118                 0x0103, ZAP_ATTRIBUTE_INDEX(7), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
119             }, /* Endpoint: 1, Cluster: Barrier Control (client) */                                                                \
120             {                                                                                                                      \
121                 0x0300, ZAP_ATTRIBUTE_INDEX(8), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
122             }, /* Endpoint: 1, Cluster: Color Control (client) */                                                                  \
123             {                                                                                                                      \
124                 0x0402, ZAP_ATTRIBUTE_INDEX(9), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
125             }, /* Endpoint: 1, Cluster: Temperature Measurement (client) */                                                        \
126             {                                                                                                                      \
127                 0xF000, ZAP_ATTRIBUTE_INDEX(10), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
128             }, /* Endpoint: 1, Cluster: Binding (client) */                                                                        \
129     }
130
131 #define ZAP_CLUSTER_INDEX(index) ((EmberAfCluster *) (&generatedClusters[index]))
132
133 // This is an array of EmberAfEndpointType structures.
134 #define GENERATED_ENDPOINT_TYPES                                                                                                   \
135     {                                                                                                                              \
136         { ZAP_CLUSTER_INDEX(0), 11, 22 },                                                                                          \
137     }
138
139 // Largest attribute size is needed for various buffers
140 #define ATTRIBUTE_LARGEST (2)
141
142 // Total size of singleton attributes
143 #define ATTRIBUTE_SINGLETONS_SIZE (0)
144
145 // Total size of attribute storage
146 #define ATTRIBUTE_MAX_SIZE (22)
147
148 // Number of fixed endpoints
149 #define FIXED_ENDPOINT_COUNT (1)
150
151 // Array of endpoints that are supported, the data inside
152 // the array is the endpoint number.
153 #define FIXED_ENDPOINT_ARRAY                                                                                                       \
154     {                                                                                                                              \
155         0x0001                                                                                                                     \
156     }
157
158 // Array of profile ids
159 #define FIXED_PROFILE_IDS                                                                                                          \
160     {                                                                                                                              \
161         0x0103                                                                                                                     \
162     }
163
164 // Array of device ids
165 #define FIXED_DEVICE_IDS                                                                                                           \
166     {                                                                                                                              \
167         0                                                                                                                          \
168     }
169
170 // Array of device versions
171 #define FIXED_DEVICE_VERSIONS                                                                                                      \
172     {                                                                                                                              \
173         1                                                                                                                          \
174     }
175
176 // Array of endpoint types supported on each endpoint
177 #define FIXED_ENDPOINT_TYPES                                                                                                       \
178     {                                                                                                                              \
179         0                                                                                                                          \
180     }
181
182 // Array of networks supported on each endpoint
183 #define FIXED_NETWORKS                                                                                                             \
184     {                                                                                                                              \
185         0                                                                                                                          \
186     }
187
188 // Array of EmberAfCommandMetadata structs.
189 #define ZAP_COMMAND_MASK(mask) COMMAND_MASK_##mask
190 #define EMBER_AF_GENERATED_COMMAND_COUNT (105)
191 #define GENERATED_COMMANDS                                                                                                         \
192     {                                                                                                                              \
193         { 0x0000, 0x00, ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Basic (client): MfgSpecificPing */                                 \
194             {                                                                                                                      \
195                 0x0000, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
196             },                                                   /* Basic (client): ResetToFactoryDefaults */                      \
197             { 0x0003, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Identify (client): Identify */                                 \
198             { 0x0003, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Identify (client): IdentifyQueryResponse */                    \
199             { 0x0003, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Identify (client): IdentifyQuery */                            \
200             { 0x0004, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): AddGroup */                                   \
201             { 0x0004, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): AddGroupResponse */                           \
202             { 0x0004, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): ViewGroup */                                  \
203             { 0x0004, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): ViewGroupResponse */                          \
204             { 0x0004, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): GetGroupMembership */                         \
205             { 0x0004, 0x02, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): GetGroupMembershipResponse */                 \
206             { 0x0004, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): RemoveGroup */                                \
207             { 0x0004, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): RemoveGroupResponse */                        \
208             { 0x0004, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): RemoveAllGroups */                            \
209             { 0x0004, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): AddGroupIfIdentifying */                      \
210             { 0x0005, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): AddScene */                                   \
211             { 0x0005, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): AddSceneResponse */                           \
212             { 0x0005, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): ViewScene */                                  \
213             { 0x0005, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): ViewSceneResponse */                          \
214             { 0x0005, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): RemoveScene */                                \
215             { 0x0005, 0x02, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): RemoveSceneResponse */                        \
216             { 0x0005, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): RemoveAllScenes */                            \
217             { 0x0005, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): RemoveAllScenesResponse */                    \
218             { 0x0005, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): StoreScene */                                 \
219             { 0x0005, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): StoreSceneResponse */                         \
220             { 0x0005, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): RecallScene */                                \
221             { 0x0005, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): GetSceneMembership */                         \
222             { 0x0005, 0x06, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): GetSceneMembershipResponse */                 \
223             { 0x0006, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (client): Off */                                        \
224             { 0x0006, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (client): On */                                         \
225             { 0x0006, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (client): Toggle */                                     \
226             { 0x0008, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): MoveToLevel */                         \
227             { 0x0008, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): Move */                                \
228             { 0x0008, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): Step */                                \
229             { 0x0008, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): Stop */                                \
230             { 0x0008, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): MoveToLevelWithOnOff */                \
231             { 0x0008, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): MoveWithOnOff */                       \
232             { 0x0008, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): StepWithOnOff */                       \
233             { 0x0008, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): StopWithOnOff */                       \
234             { 0x0101, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Door Lock (client): LockDoor */                                \
235             { 0x0101, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Door Lock (client): LockDoorResponse */                        \
236             { 0x0101, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Door Lock (client): UnlockDoor */                              \
237             { 0x0101, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Door Lock (client): UnlockDoorResponse */                      \
238             { 0x0101, 0x03,                                                                                                        \
239               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): UnlockWithTimeout */ \
240             {                                                                                                                      \
241                 0x0101, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
242             }, /* Door Lock (client): UnlockWithTimeoutResponse */                                                                 \
243             { 0x0101, 0x04,                                                                                                        \
244               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetLogRecord */      \
245             {                                                                                                                      \
246                 0x0101, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
247             }, /* Door Lock (client): GetLogRecordResponse */                                                                      \
248             { 0x0101, 0x05,                                                                                                        \
249               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetPin */            \
250             { 0x0101, 0x05,                                                                                                        \
251               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetPinResponse */    \
252             { 0x0101, 0x06,                                                                                                        \
253               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetPin */            \
254             { 0x0101, 0x06,                                                                                                        \
255               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetPinResponse */    \
256             { 0x0101, 0x07,                                                                                                        \
257               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearPin */          \
258             { 0x0101, 0x07,                                                                                                        \
259               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearPinResponse */  \
260             { 0x0101, 0x08,                                                                                                        \
261               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearAllPins */      \
262             {                                                                                                                      \
263                 0x0101, 0x08, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
264             },                   /* Door Lock (client): ClearAllPinsResponse */                                                    \
265             { 0x0101, 0x09, 0 }, /* Door Lock (client): SetUserStatusResponse */                                                   \
266             { 0x0101, 0x0A, 0 }, /* Door Lock (client): GetUserStatusResponse */                                                   \
267             {                                                                                                                      \
268                 0x0101, 0x0B, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
269             }, /* Door Lock (client): SetWeekdaySchedule */                                                                        \
270             {                                                                                                                      \
271                 0x0101, 0x0B, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
272             }, /* Door Lock (client): SetWeekdayScheduleResponse */                                                                \
273             {                                                                                                                      \
274                 0x0101, 0x0C, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
275             }, /* Door Lock (client): GetWeekdaySchedule */                                                                        \
276             {                                                                                                                      \
277                 0x0101, 0x0C, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
278             }, /* Door Lock (client): GetWeekdayScheduleResponse */                                                                \
279             {                                                                                                                      \
280                 0x0101, 0x0D, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
281             }, /* Door Lock (client): ClearWeekdaySchedule */                                                                      \
282             {                                                                                                                      \
283                 0x0101, 0x0D, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
284             }, /* Door Lock (client): ClearWeekdayScheduleResponse */                                                              \
285             {                                                                                                                      \
286                 0x0101, 0x0E, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
287             }, /* Door Lock (client): SetYeardaySchedule */                                                                        \
288             {                                                                                                                      \
289                 0x0101, 0x0E, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
290             }, /* Door Lock (client): SetYeardayScheduleResponse */                                                                \
291             {                                                                                                                      \
292                 0x0101, 0x0F, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
293             }, /* Door Lock (client): GetYeardaySchedule */                                                                        \
294             {                                                                                                                      \
295                 0x0101, 0x0F, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
296             }, /* Door Lock (client): GetYeardayScheduleResponse */                                                                \
297             {                                                                                                                      \
298                 0x0101, 0x10, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
299             }, /* Door Lock (client): ClearYeardaySchedule */                                                                      \
300             {                                                                                                                      \
301                 0x0101, 0x10, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
302             }, /* Door Lock (client): ClearYeardayScheduleResponse */                                                              \
303             {                                                                                                                      \
304                 0x0101, 0x11, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
305             }, /* Door Lock (client): SetHolidaySchedule */                                                                        \
306             {                                                                                                                      \
307                 0x0101, 0x11, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
308             }, /* Door Lock (client): SetHolidayScheduleResponse */                                                                \
309             {                                                                                                                      \
310                 0x0101, 0x12, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
311             }, /* Door Lock (client): GetHolidaySchedule */                                                                        \
312             {                                                                                                                      \
313                 0x0101, 0x12, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
314             }, /* Door Lock (client): GetHolidayScheduleResponse */                                                                \
315             {                                                                                                                      \
316                 0x0101, 0x13, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
317             }, /* Door Lock (client): ClearHolidaySchedule */                                                                      \
318             {                                                                                                                      \
319                 0x0101, 0x13, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
320             }, /* Door Lock (client): ClearHolidayScheduleResponse */                                                              \
321             { 0x0101, 0x14,                                                                                                        \
322               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetUserType */       \
323             {                                                                                                                      \
324                 0x0101, 0x14, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
325             }, /* Door Lock (client): SetUserTypeResponse */                                                                       \
326             { 0x0101, 0x15,                                                                                                        \
327               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetUserType */       \
328             {                                                                                                                      \
329                 0x0101, 0x15, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
330             }, /* Door Lock (client): GetUserTypeResponse */                                                                       \
331             { 0x0101, 0x16,                                                                                                        \
332               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetRfid */           \
333             { 0x0101, 0x16,                                                                                                        \
334               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetRfidResponse */   \
335             { 0x0101, 0x17,                                                                                                        \
336               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetRfid */           \
337             { 0x0101, 0x17,                                                                                                        \
338               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetRfidResponse */   \
339             { 0x0101, 0x18,                                                                                                        \
340               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearRfid */         \
341             { 0x0101, 0x18,                                                                                                        \
342               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearRfidResponse */ \
343             { 0x0101, 0x19,                                                                                                        \
344               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearAllRfids */     \
345             {                                                                                                                      \
346                 0x0101, 0x19, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
347             },                                                   /* Door Lock (client): ClearAllRfidsResponse */                   \
348             { 0x0103, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Barrier Control (client): BarrierControlGoToPercent */         \
349             { 0x0103, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Barrier Control (client): BarrierControlStop */                \
350             { 0x0300, 0x00,                                                                                                        \
351               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): MoveToHue */     \
352             { 0x0300, 0x01,                                                                                                        \
353               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): MoveHue */       \
354             { 0x0300, 0x02,                                                                                                        \
355               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): StepHue */       \
356             {                                                                                                                      \
357                 0x0300, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
358             }, /* Color Control (client): MoveToSaturation */                                                                      \
359             {                                                                                                                      \
360                 0x0300, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
361             }, /* Color Control (client): MoveSaturation */                                                                        \
362             {                                                                                                                      \
363                 0x0300, 0x05, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
364             }, /* Color Control (client): StepSaturation */                                                                        \
365             {                                                                                                                      \
366                 0x0300, 0x06, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
367             },                                                   /* Color Control (client): MoveToHueAndSaturation */              \
368             { 0x0300, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (client): MoveToColor */                         \
369             { 0x0300, 0x08, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (client): MoveColor */                           \
370             { 0x0300, 0x09, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (client): StepColor */                           \
371             {                                                                                                                      \
372                 0x0300, 0x0A, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
373             }, /* Color Control (client): MoveToColorTemperature */                                                                \
374             { 0x0300, 0x47,                                                                                                        \
375               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): StopMoveStep */  \
376             {                                                                                                                      \
377                 0x0300, 0x4B, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
378             }, /* Color Control (client): MoveColorTemperature */                                                                  \
379             {                                                                                                                      \
380                 0x0300, 0x4C, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
381             },                                                   /* Color Control (client): StepColorTemperature */                \
382             { 0xF000, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Binding (client): Bind */                                      \
383             { 0xF000, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Binding (client): Unbind */                                    \
384     }
385
386 // Array of EmberAfManufacturerCodeEntry structures for commands.
387 #define GENERATED_COMMAND_MANUFACTURER_CODE_COUNT (1)
388 #define GENERATED_COMMAND_MANUFACTURER_CODES                                                                                       \
389     {                                                                                                                              \
390         { 0, 4098 },                                                                                                               \
391     }
392
393 // This is an array of EmberAfManufacturerCodeEntry structures for clusters.
394 #define GENERATED_CLUSTER_MANUFACTURER_CODE_COUNT (0)
395 #define GENERATED_CLUSTER_MANUFACTURER_CODES                                                                                       \
396     {                                                                                                                              \
397         {                                                                                                                          \
398             0x00, 0x00                                                                                                             \
399         }                                                                                                                          \
400     }
401
402 // This is an array of EmberAfManufacturerCodeEntry structures for attributes.
403 #define GENERATED_ATTRIBUTE_MANUFACTURER_CODE_COUNT (0)
404 #define GENERATED_ATTRIBUTE_MANUFACTURER_CODES                                                                                     \
405     {                                                                                                                              \
406         {                                                                                                                          \
407             0x00, 0x00                                                                                                             \
408         }                                                                                                                          \
409     }
410
411 // Array of EmberAfPluginReportingEntry structures.
412 #define ZRD(x) EMBER_ZCL_REPORTING_DIRECTION_##x
413 #define ZAP_REPORT_DIRECTION(x) ZRD(x)
414
415 // Use this macro to check if Reporting plugin is included
416 #define EMBER_AF_PLUGIN_REPORTING
417 // User options for plugin Reporting
418 #define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE (1)
419 #define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS
420
421 #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (1)
422 #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS                                                                               \
423     {                                                                                                                              \
424         {                                                                                                                          \
425             ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0000, 0xFFFD, ZAP_CLUSTER_MASK(CLIENT), 0x0000, { { 0, 65344, 0 } }          \
426         }, /* Reporting for cluster: "Basic", attribute: "cluster revision". side: client */                                       \
427     }