2b8eb4cef7440f2c7b91137afdd5678e5a831ea5
[platform/upstream/connectedhomeip.git] / examples / chip-tool / 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 16
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 *) 0x0001 }                                    \
79             }, /* General Commissioning (client): cluster revision */                                                              \
80             {                                                                                                                      \
81                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
82             }, /* Door Lock (client): cluster revision */                                                                          \
83             {                                                                                                                      \
84                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
85             }, /* Barrier Control (client): cluster revision */                                                                    \
86             {                                                                                                                      \
87                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
88             }, /* Color Control (client): cluster revision */                                                                      \
89             {                                                                                                                      \
90                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 3 }                                         \
91             }, /* Temperature Measurement (client): cluster revision */                                                            \
92             {                                                                                                                      \
93                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
94             }, /* Low Power (client): cluster revision */                                                                          \
95             {                                                                                                                      \
96                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
97             }, /* Application Basic (client): cluster revision */                                                                  \
98             {                                                                                                                      \
99                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
100             }, /* Binding (client): cluster revision */                                                                            \
101             {                                                                                                                      \
102                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
103             }, /* Media Playback (client): cluster revision */                                                                     \
104             {                                                                                                                      \
105                 0xFFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(CLIENT), { (uint8_t *) 0x0001 }                                    \
106             }, /* Content Launch (client): cluster revision */                                                                     \
107     }
108
109 // This is an array of EmberAfCluster structures.
110 #define ZAP_ATTRIBUTE_INDEX(index) ((EmberAfAttributeMetadata *) (&generatedAttributes[index]))
111
112 // Cluster function static arrays
113 #define GENERATED_FUNCTION_ARRAYS
114
115 #define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
116 #define GENERATED_CLUSTER_COUNT 16
117 #define GENERATED_CLUSTERS                                                                                                         \
118     {                                                                                                                              \
119         { 0x0000, ZAP_ATTRIBUTE_INDEX(0), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Basic (client) */       \
120             {                                                                                                                      \
121                 0x0003, ZAP_ATTRIBUTE_INDEX(1), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
122             }, /* Endpoint: 1, Cluster: Identify (client) */                                                                       \
123             { 0x0004, ZAP_ATTRIBUTE_INDEX(2), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Groups (client) */  \
124             { 0x0005, ZAP_ATTRIBUTE_INDEX(3), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: Scenes (client) */  \
125             { 0x0006, ZAP_ATTRIBUTE_INDEX(4), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL }, /* Endpoint: 1, Cluster: On/off (client) */  \
126             {                                                                                                                      \
127                 0x0008, ZAP_ATTRIBUTE_INDEX(5), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
128             }, /* Endpoint: 1, Cluster: Level Control (client) */                                                                  \
129             {                                                                                                                      \
130                 0x0030, ZAP_ATTRIBUTE_INDEX(6), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
131             }, /* Endpoint: 1, Cluster: General Commissioning (client) */                                                          \
132             {                                                                                                                      \
133                 0x0101, ZAP_ATTRIBUTE_INDEX(7), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
134             }, /* Endpoint: 1, Cluster: Door Lock (client) */                                                                      \
135             {                                                                                                                      \
136                 0x0103, ZAP_ATTRIBUTE_INDEX(8), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
137             }, /* Endpoint: 1, Cluster: Barrier Control (client) */                                                                \
138             {                                                                                                                      \
139                 0x0300, ZAP_ATTRIBUTE_INDEX(9), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                               \
140             }, /* Endpoint: 1, Cluster: Color Control (client) */                                                                  \
141             {                                                                                                                      \
142                 0x0402, ZAP_ATTRIBUTE_INDEX(10), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
143             }, /* Endpoint: 1, Cluster: Temperature Measurement (client) */                                                        \
144             {                                                                                                                      \
145                 0x0508, ZAP_ATTRIBUTE_INDEX(11), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
146             }, /* Endpoint: 1, Cluster: Low Power (client) */                                                                      \
147             {                                                                                                                      \
148                 0x050D, ZAP_ATTRIBUTE_INDEX(12), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
149             }, /* Endpoint: 1, Cluster: Application Basic (client) */                                                              \
150             {                                                                                                                      \
151                 0xF000, ZAP_ATTRIBUTE_INDEX(13), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
152             }, /* Endpoint: 1, Cluster: Binding (client) */                                                                        \
153             {                                                                                                                      \
154                 0xF001, ZAP_ATTRIBUTE_INDEX(14), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
155             }, /* Endpoint: 1, Cluster: Media Playback (client) */                                                                 \
156             {                                                                                                                      \
157                 0xF002, ZAP_ATTRIBUTE_INDEX(15), 1, 2, ZAP_CLUSTER_MASK(CLIENT), NULL                                              \
158             }, /* Endpoint: 1, Cluster: Content Launch (client) */                                                                 \
159     }
160
161 #define ZAP_CLUSTER_INDEX(index) ((EmberAfCluster *) (&generatedClusters[index]))
162
163 // This is an array of EmberAfEndpointType structures.
164 #define GENERATED_ENDPOINT_TYPES                                                                                                   \
165     {                                                                                                                              \
166         { ZAP_CLUSTER_INDEX(0), 16, 32 },                                                                                          \
167     }
168
169 // Largest attribute size is needed for various buffers
170 #define ATTRIBUTE_LARGEST (2)
171
172 // Total size of singleton attributes
173 #define ATTRIBUTE_SINGLETONS_SIZE (0)
174
175 // Total size of attribute storage
176 #define ATTRIBUTE_MAX_SIZE (32)
177
178 // Number of fixed endpoints
179 #define FIXED_ENDPOINT_COUNT (1)
180
181 // Array of endpoints that are supported, the data inside
182 // the array is the endpoint number.
183 #define FIXED_ENDPOINT_ARRAY                                                                                                       \
184     {                                                                                                                              \
185         0x0001                                                                                                                     \
186     }
187
188 // Array of profile ids
189 #define FIXED_PROFILE_IDS                                                                                                          \
190     {                                                                                                                              \
191         0x0103                                                                                                                     \
192     }
193
194 // Array of device ids
195 #define FIXED_DEVICE_IDS                                                                                                           \
196     {                                                                                                                              \
197         0                                                                                                                          \
198     }
199
200 // Array of device versions
201 #define FIXED_DEVICE_VERSIONS                                                                                                      \
202     {                                                                                                                              \
203         1                                                                                                                          \
204     }
205
206 // Array of endpoint types supported on each endpoint
207 #define FIXED_ENDPOINT_TYPES                                                                                                       \
208     {                                                                                                                              \
209         0                                                                                                                          \
210     }
211
212 // Array of networks supported on each endpoint
213 #define FIXED_NETWORKS                                                                                                             \
214     {                                                                                                                              \
215         0                                                                                                                          \
216     }
217
218 // Array of EmberAfCommandMetadata structs.
219 #define ZAP_COMMAND_MASK(mask) COMMAND_MASK_##mask
220 #define EMBER_AF_GENERATED_COMMAND_COUNT (127)
221 #define GENERATED_COMMANDS                                                                                                         \
222     {                                                                                                                              \
223         { 0x0000, 0x00, ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Basic (client): MfgSpecificPing */                                 \
224             {                                                                                                                      \
225                 0x0000, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
226             },                                                   /* Basic (client): ResetToFactoryDefaults */                      \
227             { 0x0003, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Identify (client): Identify */                                 \
228             { 0x0003, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Identify (client): IdentifyQueryResponse */                    \
229             { 0x0003, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Identify (client): IdentifyQuery */                            \
230             { 0x0004, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): AddGroup */                                   \
231             { 0x0004, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): AddGroupResponse */                           \
232             { 0x0004, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): ViewGroup */                                  \
233             { 0x0004, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): ViewGroupResponse */                          \
234             { 0x0004, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): GetGroupMembership */                         \
235             { 0x0004, 0x02, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): GetGroupMembershipResponse */                 \
236             { 0x0004, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): RemoveGroup */                                \
237             { 0x0004, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Groups (client): RemoveGroupResponse */                        \
238             { 0x0004, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): RemoveAllGroups */                            \
239             { 0x0004, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Groups (client): AddGroupIfIdentifying */                      \
240             { 0x0005, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): AddScene */                                   \
241             { 0x0005, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): AddSceneResponse */                           \
242             { 0x0005, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): ViewScene */                                  \
243             { 0x0005, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): ViewSceneResponse */                          \
244             { 0x0005, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): RemoveScene */                                \
245             { 0x0005, 0x02, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): RemoveSceneResponse */                        \
246             { 0x0005, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): RemoveAllScenes */                            \
247             { 0x0005, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): RemoveAllScenesResponse */                    \
248             { 0x0005, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): StoreScene */                                 \
249             { 0x0005, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): StoreSceneResponse */                         \
250             { 0x0005, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): RecallScene */                                \
251             { 0x0005, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Scenes (client): GetSceneMembership */                         \
252             { 0x0005, 0x06, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Scenes (client): GetSceneMembershipResponse */                 \
253             { 0x0006, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (client): Off */                                        \
254             { 0x0006, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (client): On */                                         \
255             { 0x0006, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* On/off (client): Toggle */                                     \
256             { 0x0008, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): MoveToLevel */                         \
257             { 0x0008, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): Move */                                \
258             { 0x0008, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): Step */                                \
259             { 0x0008, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): Stop */                                \
260             { 0x0008, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): MoveToLevelWithOnOff */                \
261             { 0x0008, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): MoveWithOnOff */                       \
262             { 0x0008, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): StepWithOnOff */                       \
263             { 0x0008, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Level Control (client): StopWithOnOff */                       \
264             { 0x0030, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* General Commissioning (client): SetFabric */                   \
265             { 0x0030, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* General Commissioning (client): SetFabricResponse */           \
266             { 0x0030, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* General Commissioning (client): ArmFailSafe */                 \
267             { 0x0030, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* General Commissioning (client): ArmFailSafeResponse */         \
268             { 0x0030, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* General Commissioning (client): CommissioningComplete */       \
269             { 0x0030, 0x07,                                                                                                        \
270               ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* General Commissioning (client): CommissioningCompleteResponse */             \
271             { 0x0101, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Door Lock (client): LockDoor */                                \
272             { 0x0101, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Door Lock (client): LockDoorResponse */                        \
273             { 0x0101, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Door Lock (client): UnlockDoor */                              \
274             { 0x0101, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Door Lock (client): UnlockDoorResponse */                      \
275             { 0x0101, 0x03,                                                                                                        \
276               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): UnlockWithTimeout */ \
277             {                                                                                                                      \
278                 0x0101, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
279             }, /* Door Lock (client): UnlockWithTimeoutResponse */                                                                 \
280             { 0x0101, 0x04,                                                                                                        \
281               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetLogRecord */      \
282             {                                                                                                                      \
283                 0x0101, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
284             }, /* Door Lock (client): GetLogRecordResponse */                                                                      \
285             { 0x0101, 0x05,                                                                                                        \
286               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetPin */            \
287             { 0x0101, 0x05,                                                                                                        \
288               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetPinResponse */    \
289             { 0x0101, 0x06,                                                                                                        \
290               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetPin */            \
291             { 0x0101, 0x06,                                                                                                        \
292               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetPinResponse */    \
293             { 0x0101, 0x07,                                                                                                        \
294               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearPin */          \
295             { 0x0101, 0x07,                                                                                                        \
296               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearPinResponse */  \
297             { 0x0101, 0x08,                                                                                                        \
298               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearAllPins */      \
299             {                                                                                                                      \
300                 0x0101, 0x08, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
301             },                   /* Door Lock (client): ClearAllPinsResponse */                                                    \
302             { 0x0101, 0x09, 0 }, /* Door Lock (client): SetUserStatusResponse */                                                   \
303             { 0x0101, 0x0A, 0 }, /* Door Lock (client): GetUserStatusResponse */                                                   \
304             {                                                                                                                      \
305                 0x0101, 0x0B, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
306             }, /* Door Lock (client): SetWeekdaySchedule */                                                                        \
307             {                                                                                                                      \
308                 0x0101, 0x0B, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
309             }, /* Door Lock (client): SetWeekdayScheduleResponse */                                                                \
310             {                                                                                                                      \
311                 0x0101, 0x0C, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
312             }, /* Door Lock (client): GetWeekdaySchedule */                                                                        \
313             {                                                                                                                      \
314                 0x0101, 0x0C, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
315             }, /* Door Lock (client): GetWeekdayScheduleResponse */                                                                \
316             {                                                                                                                      \
317                 0x0101, 0x0D, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
318             }, /* Door Lock (client): ClearWeekdaySchedule */                                                                      \
319             {                                                                                                                      \
320                 0x0101, 0x0D, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
321             }, /* Door Lock (client): ClearWeekdayScheduleResponse */                                                              \
322             {                                                                                                                      \
323                 0x0101, 0x0E, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
324             }, /* Door Lock (client): SetYeardaySchedule */                                                                        \
325             {                                                                                                                      \
326                 0x0101, 0x0E, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
327             }, /* Door Lock (client): SetYeardayScheduleResponse */                                                                \
328             {                                                                                                                      \
329                 0x0101, 0x0F, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
330             }, /* Door Lock (client): GetYeardaySchedule */                                                                        \
331             {                                                                                                                      \
332                 0x0101, 0x0F, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
333             }, /* Door Lock (client): GetYeardayScheduleResponse */                                                                \
334             {                                                                                                                      \
335                 0x0101, 0x10, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
336             }, /* Door Lock (client): ClearYeardaySchedule */                                                                      \
337             {                                                                                                                      \
338                 0x0101, 0x10, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
339             }, /* Door Lock (client): ClearYeardayScheduleResponse */                                                              \
340             {                                                                                                                      \
341                 0x0101, 0x11, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
342             }, /* Door Lock (client): SetHolidaySchedule */                                                                        \
343             {                                                                                                                      \
344                 0x0101, 0x11, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
345             }, /* Door Lock (client): SetHolidayScheduleResponse */                                                                \
346             {                                                                                                                      \
347                 0x0101, 0x12, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
348             }, /* Door Lock (client): GetHolidaySchedule */                                                                        \
349             {                                                                                                                      \
350                 0x0101, 0x12, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
351             }, /* Door Lock (client): GetHolidayScheduleResponse */                                                                \
352             {                                                                                                                      \
353                 0x0101, 0x13, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
354             }, /* Door Lock (client): ClearHolidaySchedule */                                                                      \
355             {                                                                                                                      \
356                 0x0101, 0x13, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
357             }, /* Door Lock (client): ClearHolidayScheduleResponse */                                                              \
358             { 0x0101, 0x14,                                                                                                        \
359               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetUserType */       \
360             {                                                                                                                      \
361                 0x0101, 0x14, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
362             }, /* Door Lock (client): SetUserTypeResponse */                                                                       \
363             { 0x0101, 0x15,                                                                                                        \
364               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetUserType */       \
365             {                                                                                                                      \
366                 0x0101, 0x15, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
367             }, /* Door Lock (client): GetUserTypeResponse */                                                                       \
368             { 0x0101, 0x16,                                                                                                        \
369               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetRfid */           \
370             { 0x0101, 0x16,                                                                                                        \
371               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): SetRfidResponse */   \
372             { 0x0101, 0x17,                                                                                                        \
373               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetRfid */           \
374             { 0x0101, 0x17,                                                                                                        \
375               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): GetRfidResponse */   \
376             { 0x0101, 0x18,                                                                                                        \
377               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearRfid */         \
378             { 0x0101, 0x18,                                                                                                        \
379               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearRfidResponse */ \
380             { 0x0101, 0x19,                                                                                                        \
381               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Door Lock (client): ClearAllRfids */     \
382             {                                                                                                                      \
383                 0x0101, 0x19, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
384             },                                                   /* Door Lock (client): ClearAllRfidsResponse */                   \
385             { 0x0103, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Barrier Control (client): BarrierControlGoToPercent */         \
386             { 0x0103, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Barrier Control (client): BarrierControlStop */                \
387             { 0x0300, 0x00,                                                                                                        \
388               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): MoveToHue */     \
389             { 0x0300, 0x01,                                                                                                        \
390               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): MoveHue */       \
391             { 0x0300, 0x02,                                                                                                        \
392               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): StepHue */       \
393             {                                                                                                                      \
394                 0x0300, 0x03, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
395             }, /* Color Control (client): MoveToSaturation */                                                                      \
396             {                                                                                                                      \
397                 0x0300, 0x04, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
398             }, /* Color Control (client): MoveSaturation */                                                                        \
399             {                                                                                                                      \
400                 0x0300, 0x05, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
401             }, /* Color Control (client): StepSaturation */                                                                        \
402             {                                                                                                                      \
403                 0x0300, 0x06, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
404             },                                                   /* Color Control (client): MoveToHueAndSaturation */              \
405             { 0x0300, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (client): MoveToColor */                         \
406             { 0x0300, 0x08, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (client): MoveColor */                           \
407             { 0x0300, 0x09, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Color Control (client): StepColor */                           \
408             {                                                                                                                      \
409                 0x0300, 0x0A, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
410             }, /* Color Control (client): MoveToColorTemperature */                                                                \
411             { 0x0300, 0x47,                                                                                                        \
412               ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT) }, /* Color Control (client): StopMoveStep */  \
413             {                                                                                                                      \
414                 0x0300, 0x4B, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
415             }, /* Color Control (client): MoveColorTemperature */                                                                  \
416             {                                                                                                                      \
417                 0x0300, 0x4C, ZAP_COMMAND_MASK(INCOMING_CLIENT) | ZAP_COMMAND_MASK(OUTGOING_CLIENT)                                \
418             },                                                   /* Color Control (client): StepColorTemperature */                \
419             { 0x0508, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Low Power (client): Sleep */                                   \
420             { 0xF000, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Binding (client): Bind */                                      \
421             { 0xF000, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Binding (client): Unbind */                                    \
422             { 0xF001, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): PlayRequest */                        \
423             { 0xF001, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Media Playback (client): Playback */                           \
424             { 0xF001, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): PauseRequest */                       \
425             { 0xF001, 0x02, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): StopRequest */                        \
426             { 0xF001, 0x03, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): StartOverRequest */                   \
427             { 0xF001, 0x04, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): PreviousRequest */                    \
428             { 0xF001, 0x05, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): NextRequest */                        \
429             { 0xF001, 0x06, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): RewindRequest */                      \
430             { 0xF001, 0x07, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): FastForwardRequest */                 \
431             { 0xF001, 0x08, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): SkipForwardRequest */                 \
432             { 0xF001, 0x09, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Media Playback (client): SkipBackwardRequest */                \
433             { 0xF002, 0x00, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Content Launch (client): LaunchContent */                      \
434             { 0xF002, 0x00, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Content Launch (client): LaunchContentResponse */              \
435             { 0xF002, 0x01, ZAP_COMMAND_MASK(INCOMING_SERVER) }, /* Content Launch (client): LaunchURL */                          \
436             { 0xF002, 0x01, ZAP_COMMAND_MASK(INCOMING_CLIENT) }, /* Content Launch (client): LaunchURLResponse */                  \
437     }
438
439 // Array of EmberAfManufacturerCodeEntry structures for commands.
440 #define GENERATED_COMMAND_MANUFACTURER_CODE_COUNT (1)
441 #define GENERATED_COMMAND_MANUFACTURER_CODES                                                                                       \
442     {                                                                                                                              \
443         { 0, 4098 },                                                                                                               \
444     }
445
446 // This is an array of EmberAfManufacturerCodeEntry structures for clusters.
447 #define GENERATED_CLUSTER_MANUFACTURER_CODE_COUNT (0)
448 #define GENERATED_CLUSTER_MANUFACTURER_CODES                                                                                       \
449     {                                                                                                                              \
450         {                                                                                                                          \
451             0x00, 0x00                                                                                                             \
452         }                                                                                                                          \
453     }
454
455 // This is an array of EmberAfManufacturerCodeEntry structures for attributes.
456 #define GENERATED_ATTRIBUTE_MANUFACTURER_CODE_COUNT (0)
457 #define GENERATED_ATTRIBUTE_MANUFACTURER_CODES                                                                                     \
458     {                                                                                                                              \
459         {                                                                                                                          \
460             0x00, 0x00                                                                                                             \
461         }                                                                                                                          \
462     }
463
464 // Array of EmberAfPluginReportingEntry structures.
465 #define ZRD(x) EMBER_ZCL_REPORTING_DIRECTION_##x
466 #define ZAP_REPORT_DIRECTION(x) ZRD(x)
467
468 // Use this macro to check if Reporting plugin is included
469 #define EMBER_AF_PLUGIN_REPORTING
470 // User options for plugin Reporting
471 #define EMBER_AF_PLUGIN_REPORTING_TABLE_SIZE (1)
472 #define EMBER_AF_PLUGIN_REPORTING_ENABLE_GROUP_BOUND_REPORTS
473
474 #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS_TABLE_SIZE (1)
475 #define EMBER_AF_GENERATED_REPORTING_CONFIG_DEFAULTS                                                                               \
476     {                                                                                                                              \
477         {                                                                                                                          \
478             ZAP_REPORT_DIRECTION(REPORTED), 0x0001, 0x0000, 0xFFFD, ZAP_CLUSTER_MASK(CLIENT), 0x0000, { { 0, 65344, 0 } }          \
479         }, /* Reporting for cluster: "Basic", attribute: "cluster revision". side: client */                                       \
480     }