3 * Copyright (c) 2021 Project CHIP Authors
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 // THIS FILE IS GENERATED BY ZAP
20 // Prevent multiple inclusion
23 #include "af-structs.h"
25 #include "basic-types.h"
27 #include <lib/support/Span.h>
29 /** @brief Cluster Init
31 * This function is called when a specific cluster is initialized. It gives the
32 * application an opportunity to take care of cluster initialization procedures.
33 * It is called exactly once for each endpoint where cluster is present.
35 * @param endpoint Ver.: always
36 * @param clusterId Ver.: always
38 void emberAfClusterInitCallback(chip::EndpointId endpoint, chip::ClusterId clusterId);
40 // Cluster Init Functions
42 /** @brief Application Basic Cluster Init
46 * @param endpoint Endpoint that is being initialized
48 void emberAfApplicationBasicClusterInitCallback(chip::EndpointId endpoint);
50 /** @brief Barrier Control Cluster Init
54 * @param endpoint Endpoint that is being initialized
56 void emberAfBarrierControlClusterInitCallback(chip::EndpointId endpoint);
58 /** @brief Basic Cluster Init
62 * @param endpoint Endpoint that is being initialized
64 void emberAfBasicClusterInitCallback(chip::EndpointId endpoint);
66 /** @brief Color Control Cluster Init
70 * @param endpoint Endpoint that is being initialized
72 void emberAfColorControlClusterInitCallback(chip::EndpointId endpoint);
74 /** @brief Door Lock Cluster Init
78 * @param endpoint Endpoint that is being initialized
80 void emberAfDoorLockClusterInitCallback(chip::EndpointId endpoint);
82 /** @brief Groups Cluster Init
86 * @param endpoint Endpoint that is being initialized
88 void emberAfGroupsClusterInitCallback(chip::EndpointId endpoint);
90 /** @brief IAS Zone Cluster Init
94 * @param endpoint Endpoint that is being initialized
96 void emberAfIasZoneClusterInitCallback(chip::EndpointId endpoint);
98 /** @brief Identify Cluster Init
102 * @param endpoint Endpoint that is being initialized
104 void emberAfIdentifyClusterInitCallback(chip::EndpointId endpoint);
106 /** @brief Level Control Cluster Init
110 * @param endpoint Endpoint that is being initialized
112 void emberAfLevelControlClusterInitCallback(chip::EndpointId endpoint);
114 /** @brief Low Power Cluster Init
118 * @param endpoint Endpoint that is being initialized
120 void emberAfLowPowerClusterInitCallback(chip::EndpointId endpoint);
122 /** @brief Network Commissioning Cluster Init
126 * @param endpoint Endpoint that is being initialized
128 void emberAfNetworkCommissioningClusterInitCallback(chip::EndpointId endpoint);
130 /** @brief On/off Cluster Init
134 * @param endpoint Endpoint that is being initialized
136 void emberAfOnOffClusterInitCallback(chip::EndpointId endpoint);
138 /** @brief Scenes Cluster Init
142 * @param endpoint Endpoint that is being initialized
144 void emberAfScenesClusterInitCallback(chip::EndpointId endpoint);
146 /** @brief Temperature Measurement Cluster Init
150 * @param endpoint Endpoint that is being initialized
152 void emberAfTemperatureMeasurementClusterInitCallback(chip::EndpointId endpoint);
154 // Cluster Server/Client Init Functions
157 // Application Basic Cluster server
160 /** @brief Application Basic Cluster Server Init
164 * @param endpoint Endpoint that is being initialized
166 void emberAfApplicationBasicClusterServerInitCallback(chip::EndpointId endpoint);
168 /** @brief Application Basic Cluster Server Attribute Changed
170 * Server Attribute Changed
172 * @param endpoint Endpoint that is being initialized
173 * @param attributeId Attribute that changed
175 void emberAfApplicationBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
177 /** @brief Application Basic Cluster Server Manufacturer Specific Attribute Changed
179 * Server Manufacturer Specific Attribute Changed
181 * @param endpoint Endpoint that is being initialized
182 * @param attributeId Attribute that changed
183 * @param manufacturerCode Manufacturer Code of the attribute that changed
185 void emberAfApplicationBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
186 chip::AttributeId attributeId,
187 uint16_t manufacturerCode);
189 /** @brief Application Basic Cluster Server Message Sent
191 * Server Message Sent
193 * @param type The type of message sent
194 * @param indexOrDestination The destination or address to which the message was sent
195 * @param apsFrame The APS frame for the message
196 * @param msgLen The length of the message
197 * @param message The message that was sent
198 * @param status The status of the sent message
200 void emberAfApplicationBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
201 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
204 /** @brief Application Basic Cluster Server Pre Attribute Changed
206 * server Pre Attribute Changed
208 * @param endpoint Endpoint that is being initialized
209 * @param attributeId Attribute to be changed
210 * @param attributeType Attribute type
211 * @param size Attribute size
212 * @param value Attribute value
214 EmberAfStatus emberAfApplicationBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
215 chip::AttributeId attributeId,
216 EmberAfAttributeType attributeType, uint8_t size,
219 /** @brief Application Basic Cluster Server Tick
223 * @param endpoint Endpoint that is being served
225 void emberAfApplicationBasicClusterServerTickCallback(chip::EndpointId endpoint);
228 // Barrier Control Cluster client
231 /** @brief Barrier Control Cluster Client Init
235 * @param endpoint Endpoint that is being initialized
237 void emberAfBarrierControlClusterClientInitCallback(chip::EndpointId endpoint);
239 /** @brief Barrier Control Cluster Client Attribute Changed
241 * Client Attribute Changed
243 * @param endpoint Endpoint that is being initialized
244 * @param attributeId Attribute that changed
246 void emberAfBarrierControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
248 /** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed
250 * Client Manufacturer Specific Attribute Changed
252 * @param endpoint Endpoint that is being initialized
253 * @param attributeId Attribute that changed
254 * @param manufacturerCode Manufacturer Code of the attribute that changed
256 void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
257 chip::AttributeId attributeId,
258 uint16_t manufacturerCode);
260 /** @brief Barrier Control Cluster Client Message Sent
262 * Client Message Sent
264 * @param type The type of message sent
265 * @param indexOrDestination The destination or address to which the message was sent
266 * @param apsFrame The APS frame for the message
267 * @param msgLen The length of the message
268 * @param message The message that was sent
269 * @param status The status of the sent message
271 void emberAfBarrierControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
272 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
275 /** @brief Barrier Control Cluster Client Pre Attribute Changed
277 * client Pre Attribute Changed
279 * @param endpoint Endpoint that is being initialized
280 * @param attributeId Attribute to be changed
281 * @param attributeType Attribute type
282 * @param size Attribute size
283 * @param value Attribute value
285 EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
286 chip::AttributeId attributeId,
287 EmberAfAttributeType attributeType, uint8_t size,
290 /** @brief Barrier Control Cluster Client Tick
294 * @param endpoint Endpoint that is being served
296 void emberAfBarrierControlClusterClientTickCallback(chip::EndpointId endpoint);
299 // Barrier Control Cluster server
302 /** @brief Barrier Control Cluster Server Init
306 * @param endpoint Endpoint that is being initialized
308 void emberAfBarrierControlClusterServerInitCallback(chip::EndpointId endpoint);
310 /** @brief Barrier Control Cluster Server Attribute Changed
312 * Server Attribute Changed
314 * @param endpoint Endpoint that is being initialized
315 * @param attributeId Attribute that changed
317 void emberAfBarrierControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
319 /** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed
321 * Server Manufacturer Specific Attribute Changed
323 * @param endpoint Endpoint that is being initialized
324 * @param attributeId Attribute that changed
325 * @param manufacturerCode Manufacturer Code of the attribute that changed
327 void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
328 chip::AttributeId attributeId,
329 uint16_t manufacturerCode);
331 /** @brief Barrier Control Cluster Server Message Sent
333 * Server Message Sent
335 * @param type The type of message sent
336 * @param indexOrDestination The destination or address to which the message was sent
337 * @param apsFrame The APS frame for the message
338 * @param msgLen The length of the message
339 * @param message The message that was sent
340 * @param status The status of the sent message
342 void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
343 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
346 /** @brief Barrier Control Cluster Server Pre Attribute Changed
348 * server Pre Attribute Changed
350 * @param endpoint Endpoint that is being initialized
351 * @param attributeId Attribute to be changed
352 * @param attributeType Attribute type
353 * @param size Attribute size
354 * @param value Attribute value
356 EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
357 chip::AttributeId attributeId,
358 EmberAfAttributeType attributeType, uint8_t size,
361 /** @brief Barrier Control Cluster Server Tick
365 * @param endpoint Endpoint that is being served
367 void emberAfBarrierControlClusterServerTickCallback(chip::EndpointId endpoint);
370 // Basic Cluster server
373 /** @brief Basic Cluster Server Init
377 * @param endpoint Endpoint that is being initialized
379 void emberAfBasicClusterServerInitCallback(chip::EndpointId endpoint);
381 /** @brief Basic Cluster Server Attribute Changed
383 * Server Attribute Changed
385 * @param endpoint Endpoint that is being initialized
386 * @param attributeId Attribute that changed
388 void emberAfBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
390 /** @brief Basic Cluster Server Manufacturer Specific Attribute Changed
392 * Server Manufacturer Specific Attribute Changed
394 * @param endpoint Endpoint that is being initialized
395 * @param attributeId Attribute that changed
396 * @param manufacturerCode Manufacturer Code of the attribute that changed
398 void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
399 uint16_t manufacturerCode);
401 /** @brief Basic Cluster Server Message Sent
403 * Server Message Sent
405 * @param type The type of message sent
406 * @param indexOrDestination The destination or address to which the message was sent
407 * @param apsFrame The APS frame for the message
408 * @param msgLen The length of the message
409 * @param message The message that was sent
410 * @param status The status of the sent message
412 void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
413 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status);
415 /** @brief Basic Cluster Server Pre Attribute Changed
417 * server Pre Attribute Changed
419 * @param endpoint Endpoint that is being initialized
420 * @param attributeId Attribute to be changed
421 * @param attributeType Attribute type
422 * @param size Attribute size
423 * @param value Attribute value
425 EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
426 EmberAfAttributeType attributeType, uint8_t size,
429 /** @brief Basic Cluster Server Tick
433 * @param endpoint Endpoint that is being served
435 void emberAfBasicClusterServerTickCallback(chip::EndpointId endpoint);
438 // Color Control Cluster client
441 /** @brief Color Control Cluster Client Init
445 * @param endpoint Endpoint that is being initialized
447 void emberAfColorControlClusterClientInitCallback(chip::EndpointId endpoint);
449 /** @brief Color Control Cluster Client Attribute Changed
451 * Client Attribute Changed
453 * @param endpoint Endpoint that is being initialized
454 * @param attributeId Attribute that changed
456 void emberAfColorControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
458 /** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed
460 * Client Manufacturer Specific Attribute Changed
462 * @param endpoint Endpoint that is being initialized
463 * @param attributeId Attribute that changed
464 * @param manufacturerCode Manufacturer Code of the attribute that changed
466 void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
467 chip::AttributeId attributeId,
468 uint16_t manufacturerCode);
470 /** @brief Color Control Cluster Client Message Sent
472 * Client Message Sent
474 * @param type The type of message sent
475 * @param indexOrDestination The destination or address to which the message was sent
476 * @param apsFrame The APS frame for the message
477 * @param msgLen The length of the message
478 * @param message The message that was sent
479 * @param status The status of the sent message
481 void emberAfColorControlClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
482 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
485 /** @brief Color Control Cluster Client Pre Attribute Changed
487 * client Pre Attribute Changed
489 * @param endpoint Endpoint that is being initialized
490 * @param attributeId Attribute to be changed
491 * @param attributeType Attribute type
492 * @param size Attribute size
493 * @param value Attribute value
495 EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
496 EmberAfAttributeType attributeType, uint8_t size,
499 /** @brief Color Control Cluster Client Tick
503 * @param endpoint Endpoint that is being served
505 void emberAfColorControlClusterClientTickCallback(chip::EndpointId endpoint);
508 // Color Control Cluster server
511 /** @brief Color Control Cluster Server Init
515 * @param endpoint Endpoint that is being initialized
517 void emberAfColorControlClusterServerInitCallback(chip::EndpointId endpoint);
519 /** @brief Color Control Cluster Server Attribute Changed
521 * Server Attribute Changed
523 * @param endpoint Endpoint that is being initialized
524 * @param attributeId Attribute that changed
526 void emberAfColorControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
528 /** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed
530 * Server Manufacturer Specific Attribute Changed
532 * @param endpoint Endpoint that is being initialized
533 * @param attributeId Attribute that changed
534 * @param manufacturerCode Manufacturer Code of the attribute that changed
536 void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
537 chip::AttributeId attributeId,
538 uint16_t manufacturerCode);
540 /** @brief Color Control Cluster Server Message Sent
542 * Server Message Sent
544 * @param type The type of message sent
545 * @param indexOrDestination The destination or address to which the message was sent
546 * @param apsFrame The APS frame for the message
547 * @param msgLen The length of the message
548 * @param message The message that was sent
549 * @param status The status of the sent message
551 void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
552 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
555 /** @brief Color Control Cluster Server Pre Attribute Changed
557 * server Pre Attribute Changed
559 * @param endpoint Endpoint that is being initialized
560 * @param attributeId Attribute to be changed
561 * @param attributeType Attribute type
562 * @param size Attribute size
563 * @param value Attribute value
565 EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
566 EmberAfAttributeType attributeType, uint8_t size,
569 /** @brief Color Control Cluster Server Tick
573 * @param endpoint Endpoint that is being served
575 void emberAfColorControlClusterServerTickCallback(chip::EndpointId endpoint);
578 // Door Lock Cluster client
581 /** @brief Door Lock Cluster Client Init
585 * @param endpoint Endpoint that is being initialized
587 void emberAfDoorLockClusterClientInitCallback(chip::EndpointId endpoint);
589 /** @brief Door Lock Cluster Client Attribute Changed
591 * Client Attribute Changed
593 * @param endpoint Endpoint that is being initialized
594 * @param attributeId Attribute that changed
596 void emberAfDoorLockClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
598 /** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed
600 * Client Manufacturer Specific Attribute Changed
602 * @param endpoint Endpoint that is being initialized
603 * @param attributeId Attribute that changed
604 * @param manufacturerCode Manufacturer Code of the attribute that changed
606 void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
607 chip::AttributeId attributeId,
608 uint16_t manufacturerCode);
610 /** @brief Door Lock Cluster Client Message Sent
612 * Client Message Sent
614 * @param type The type of message sent
615 * @param indexOrDestination The destination or address to which the message was sent
616 * @param apsFrame The APS frame for the message
617 * @param msgLen The length of the message
618 * @param message The message that was sent
619 * @param status The status of the sent message
621 void emberAfDoorLockClusterClientMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
622 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
625 /** @brief Door Lock Cluster Client Pre Attribute Changed
627 * client Pre Attribute Changed
629 * @param endpoint Endpoint that is being initialized
630 * @param attributeId Attribute to be changed
631 * @param attributeType Attribute type
632 * @param size Attribute size
633 * @param value Attribute value
635 EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
636 EmberAfAttributeType attributeType, uint8_t size,
639 /** @brief Door Lock Cluster Client Tick
643 * @param endpoint Endpoint that is being served
645 void emberAfDoorLockClusterClientTickCallback(chip::EndpointId endpoint);
648 // Door Lock Cluster server
651 /** @brief Door Lock Cluster Server Init
655 * @param endpoint Endpoint that is being initialized
657 void emberAfDoorLockClusterServerInitCallback(chip::EndpointId endpoint);
659 /** @brief Door Lock Cluster Server Attribute Changed
661 * Server Attribute Changed
663 * @param endpoint Endpoint that is being initialized
664 * @param attributeId Attribute that changed
666 void emberAfDoorLockClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
668 /** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed
670 * Server Manufacturer Specific Attribute Changed
672 * @param endpoint Endpoint that is being initialized
673 * @param attributeId Attribute that changed
674 * @param manufacturerCode Manufacturer Code of the attribute that changed
676 void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
677 chip::AttributeId attributeId,
678 uint16_t manufacturerCode);
680 /** @brief Door Lock Cluster Server Message Sent
682 * Server Message Sent
684 * @param type The type of message sent
685 * @param indexOrDestination The destination or address to which the message was sent
686 * @param apsFrame The APS frame for the message
687 * @param msgLen The length of the message
688 * @param message The message that was sent
689 * @param status The status of the sent message
691 void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
692 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
695 /** @brief Door Lock Cluster Server Pre Attribute Changed
697 * server Pre Attribute Changed
699 * @param endpoint Endpoint that is being initialized
700 * @param attributeId Attribute to be changed
701 * @param attributeType Attribute type
702 * @param size Attribute size
703 * @param value Attribute value
705 EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
706 EmberAfAttributeType attributeType, uint8_t size,
709 /** @brief Door Lock Cluster Server Tick
713 * @param endpoint Endpoint that is being served
715 void emberAfDoorLockClusterServerTickCallback(chip::EndpointId endpoint);
718 // Groups Cluster server
721 /** @brief Groups Cluster Server Init
725 * @param endpoint Endpoint that is being initialized
727 void emberAfGroupsClusterServerInitCallback(chip::EndpointId endpoint);
729 /** @brief Groups Cluster Server Attribute Changed
731 * Server Attribute Changed
733 * @param endpoint Endpoint that is being initialized
734 * @param attributeId Attribute that changed
736 void emberAfGroupsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
738 /** @brief Groups Cluster Server Manufacturer Specific Attribute Changed
740 * Server Manufacturer Specific Attribute Changed
742 * @param endpoint Endpoint that is being initialized
743 * @param attributeId Attribute that changed
744 * @param manufacturerCode Manufacturer Code of the attribute that changed
746 void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
747 chip::AttributeId attributeId,
748 uint16_t manufacturerCode);
750 /** @brief Groups Cluster Server Message Sent
752 * Server Message Sent
754 * @param type The type of message sent
755 * @param indexOrDestination The destination or address to which the message was sent
756 * @param apsFrame The APS frame for the message
757 * @param msgLen The length of the message
758 * @param message The message that was sent
759 * @param status The status of the sent message
761 void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
762 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
765 /** @brief Groups Cluster Server Pre Attribute Changed
767 * server Pre Attribute Changed
769 * @param endpoint Endpoint that is being initialized
770 * @param attributeId Attribute to be changed
771 * @param attributeType Attribute type
772 * @param size Attribute size
773 * @param value Attribute value
775 EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
776 EmberAfAttributeType attributeType, uint8_t size,
779 /** @brief Groups Cluster Server Tick
783 * @param endpoint Endpoint that is being served
785 void emberAfGroupsClusterServerTickCallback(chip::EndpointId endpoint);
788 // IAS Zone Cluster server
791 /** @brief IAS Zone Cluster Server Init
795 * @param endpoint Endpoint that is being initialized
797 void emberAfIasZoneClusterServerInitCallback(chip::EndpointId endpoint);
799 /** @brief IAS Zone Cluster Server Attribute Changed
801 * Server Attribute Changed
803 * @param endpoint Endpoint that is being initialized
804 * @param attributeId Attribute that changed
806 void emberAfIasZoneClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
808 /** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed
810 * Server Manufacturer Specific Attribute Changed
812 * @param endpoint Endpoint that is being initialized
813 * @param attributeId Attribute that changed
814 * @param manufacturerCode Manufacturer Code of the attribute that changed
816 void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
817 chip::AttributeId attributeId,
818 uint16_t manufacturerCode);
820 /** @brief IAS Zone Cluster Server Message Sent
822 * Server Message Sent
824 * @param type The type of message sent
825 * @param indexOrDestination The destination or address to which the message was sent
826 * @param apsFrame The APS frame for the message
827 * @param msgLen The length of the message
828 * @param message The message that was sent
829 * @param status The status of the sent message
831 void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
832 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
835 /** @brief IAS Zone Cluster Server Pre Attribute Changed
837 * server Pre Attribute Changed
839 * @param endpoint Endpoint that is being initialized
840 * @param attributeId Attribute to be changed
841 * @param attributeType Attribute type
842 * @param size Attribute size
843 * @param value Attribute value
845 EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
846 EmberAfAttributeType attributeType, uint8_t size,
849 /** @brief IAS Zone Cluster Server Tick
853 * @param endpoint Endpoint that is being served
855 void emberAfIasZoneClusterServerTickCallback(chip::EndpointId endpoint);
858 // Identify Cluster server
861 /** @brief Identify Cluster Server Init
865 * @param endpoint Endpoint that is being initialized
867 void emberAfIdentifyClusterServerInitCallback(chip::EndpointId endpoint);
869 /** @brief Identify Cluster Server Attribute Changed
871 * Server Attribute Changed
873 * @param endpoint Endpoint that is being initialized
874 * @param attributeId Attribute that changed
876 void emberAfIdentifyClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
878 /** @brief Identify Cluster Server Manufacturer Specific Attribute Changed
880 * Server Manufacturer Specific Attribute Changed
882 * @param endpoint Endpoint that is being initialized
883 * @param attributeId Attribute that changed
884 * @param manufacturerCode Manufacturer Code of the attribute that changed
886 void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
887 chip::AttributeId attributeId,
888 uint16_t manufacturerCode);
890 /** @brief Identify Cluster Server Message Sent
892 * Server Message Sent
894 * @param type The type of message sent
895 * @param indexOrDestination The destination or address to which the message was sent
896 * @param apsFrame The APS frame for the message
897 * @param msgLen The length of the message
898 * @param message The message that was sent
899 * @param status The status of the sent message
901 void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
902 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
905 /** @brief Identify Cluster Server Pre Attribute Changed
907 * server Pre Attribute Changed
909 * @param endpoint Endpoint that is being initialized
910 * @param attributeId Attribute to be changed
911 * @param attributeType Attribute type
912 * @param size Attribute size
913 * @param value Attribute value
915 EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
916 EmberAfAttributeType attributeType, uint8_t size,
919 /** @brief Identify Cluster Server Tick
923 * @param endpoint Endpoint that is being served
925 void emberAfIdentifyClusterServerTickCallback(chip::EndpointId endpoint);
928 // Level Control Cluster server
931 /** @brief Level Control Cluster Server Init
935 * @param endpoint Endpoint that is being initialized
937 void emberAfLevelControlClusterServerInitCallback(chip::EndpointId endpoint);
939 /** @brief Level Control Cluster Server Attribute Changed
941 * Server Attribute Changed
943 * @param endpoint Endpoint that is being initialized
944 * @param attributeId Attribute that changed
946 void emberAfLevelControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
948 /** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed
950 * Server Manufacturer Specific Attribute Changed
952 * @param endpoint Endpoint that is being initialized
953 * @param attributeId Attribute that changed
954 * @param manufacturerCode Manufacturer Code of the attribute that changed
956 void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
957 chip::AttributeId attributeId,
958 uint16_t manufacturerCode);
960 /** @brief Level Control Cluster Server Message Sent
962 * Server Message Sent
964 * @param type The type of message sent
965 * @param indexOrDestination The destination or address to which the message was sent
966 * @param apsFrame The APS frame for the message
967 * @param msgLen The length of the message
968 * @param message The message that was sent
969 * @param status The status of the sent message
971 void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
972 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
975 /** @brief Level Control Cluster Server Pre Attribute Changed
977 * server Pre Attribute Changed
979 * @param endpoint Endpoint that is being initialized
980 * @param attributeId Attribute to be changed
981 * @param attributeType Attribute type
982 * @param size Attribute size
983 * @param value Attribute value
985 EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
986 EmberAfAttributeType attributeType, uint8_t size,
989 /** @brief Level Control Cluster Server Tick
993 * @param endpoint Endpoint that is being served
995 void emberAfLevelControlClusterServerTickCallback(chip::EndpointId endpoint);
998 // Low Power Cluster server
1001 /** @brief Low Power Cluster Server Init
1005 * @param endpoint Endpoint that is being initialized
1007 void emberAfLowPowerClusterServerInitCallback(chip::EndpointId endpoint);
1009 /** @brief Low Power Cluster Server Attribute Changed
1011 * Server Attribute Changed
1013 * @param endpoint Endpoint that is being initialized
1014 * @param attributeId Attribute that changed
1016 void emberAfLowPowerClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1018 /** @brief Low Power Cluster Server Manufacturer Specific Attribute Changed
1020 * Server Manufacturer Specific Attribute Changed
1022 * @param endpoint Endpoint that is being initialized
1023 * @param attributeId Attribute that changed
1024 * @param manufacturerCode Manufacturer Code of the attribute that changed
1026 void emberAfLowPowerClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1027 chip::AttributeId attributeId,
1028 uint16_t manufacturerCode);
1030 /** @brief Low Power Cluster Server Message Sent
1032 * Server Message Sent
1034 * @param type The type of message sent
1035 * @param indexOrDestination The destination or address to which the message was sent
1036 * @param apsFrame The APS frame for the message
1037 * @param msgLen The length of the message
1038 * @param message The message that was sent
1039 * @param status The status of the sent message
1041 void emberAfLowPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1042 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1043 EmberStatus status);
1045 /** @brief Low Power Cluster Server Pre Attribute Changed
1047 * server Pre Attribute Changed
1049 * @param endpoint Endpoint that is being initialized
1050 * @param attributeId Attribute to be changed
1051 * @param attributeType Attribute type
1052 * @param size Attribute size
1053 * @param value Attribute value
1055 EmberAfStatus emberAfLowPowerClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1056 EmberAfAttributeType attributeType, uint8_t size,
1059 /** @brief Low Power Cluster Server Tick
1063 * @param endpoint Endpoint that is being served
1065 void emberAfLowPowerClusterServerTickCallback(chip::EndpointId endpoint);
1068 // Network Commissioning Cluster server
1071 /** @brief Network Commissioning Cluster Server Init
1075 * @param endpoint Endpoint that is being initialized
1077 void emberAfNetworkCommissioningClusterServerInitCallback(chip::EndpointId endpoint);
1079 /** @brief Network Commissioning Cluster Server Attribute Changed
1081 * Server Attribute Changed
1083 * @param endpoint Endpoint that is being initialized
1084 * @param attributeId Attribute that changed
1086 void emberAfNetworkCommissioningClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1088 /** @brief Network Commissioning Cluster Server Manufacturer Specific Attribute Changed
1090 * Server Manufacturer Specific Attribute Changed
1092 * @param endpoint Endpoint that is being initialized
1093 * @param attributeId Attribute that changed
1094 * @param manufacturerCode Manufacturer Code of the attribute that changed
1096 void emberAfNetworkCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1097 chip::AttributeId attributeId,
1098 uint16_t manufacturerCode);
1100 /** @brief Network Commissioning Cluster Server Message Sent
1102 * Server Message Sent
1104 * @param type The type of message sent
1105 * @param indexOrDestination The destination or address to which the message was sent
1106 * @param apsFrame The APS frame for the message
1107 * @param msgLen The length of the message
1108 * @param message The message that was sent
1109 * @param status The status of the sent message
1111 void emberAfNetworkCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1112 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1113 EmberStatus status);
1115 /** @brief Network Commissioning Cluster Server Pre Attribute Changed
1117 * server Pre Attribute Changed
1119 * @param endpoint Endpoint that is being initialized
1120 * @param attributeId Attribute to be changed
1121 * @param attributeType Attribute type
1122 * @param size Attribute size
1123 * @param value Attribute value
1125 EmberAfStatus emberAfNetworkCommissioningClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
1126 chip::AttributeId attributeId,
1127 EmberAfAttributeType attributeType, uint8_t size,
1130 /** @brief Network Commissioning Cluster Server Tick
1134 * @param endpoint Endpoint that is being served
1136 void emberAfNetworkCommissioningClusterServerTickCallback(chip::EndpointId endpoint);
1139 // On/off Cluster server
1142 /** @brief On/off Cluster Server Init
1146 * @param endpoint Endpoint that is being initialized
1148 void emberAfOnOffClusterServerInitCallback(chip::EndpointId endpoint);
1150 /** @brief On/off Cluster Server Attribute Changed
1152 * Server Attribute Changed
1154 * @param endpoint Endpoint that is being initialized
1155 * @param attributeId Attribute that changed
1157 void emberAfOnOffClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1159 /** @brief On/off Cluster Server Manufacturer Specific Attribute Changed
1161 * Server Manufacturer Specific Attribute Changed
1163 * @param endpoint Endpoint that is being initialized
1164 * @param attributeId Attribute that changed
1165 * @param manufacturerCode Manufacturer Code of the attribute that changed
1167 void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1168 uint16_t manufacturerCode);
1170 /** @brief On/off Cluster Server Message Sent
1172 * Server Message Sent
1174 * @param type The type of message sent
1175 * @param indexOrDestination The destination or address to which the message was sent
1176 * @param apsFrame The APS frame for the message
1177 * @param msgLen The length of the message
1178 * @param message The message that was sent
1179 * @param status The status of the sent message
1181 void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1182 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status);
1184 /** @brief On/off Cluster Server Pre Attribute Changed
1186 * server Pre Attribute Changed
1188 * @param endpoint Endpoint that is being initialized
1189 * @param attributeId Attribute to be changed
1190 * @param attributeType Attribute type
1191 * @param size Attribute size
1192 * @param value Attribute value
1194 EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1195 EmberAfAttributeType attributeType, uint8_t size,
1198 /** @brief On/off Cluster Server Tick
1202 * @param endpoint Endpoint that is being served
1204 void emberAfOnOffClusterServerTickCallback(chip::EndpointId endpoint);
1207 // Scenes Cluster server
1210 /** @brief Scenes Cluster Server Init
1214 * @param endpoint Endpoint that is being initialized
1216 void emberAfScenesClusterServerInitCallback(chip::EndpointId endpoint);
1218 /** @brief Scenes Cluster Server Attribute Changed
1220 * Server Attribute Changed
1222 * @param endpoint Endpoint that is being initialized
1223 * @param attributeId Attribute that changed
1225 void emberAfScenesClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1227 /** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed
1229 * Server Manufacturer Specific Attribute Changed
1231 * @param endpoint Endpoint that is being initialized
1232 * @param attributeId Attribute that changed
1233 * @param manufacturerCode Manufacturer Code of the attribute that changed
1235 void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1236 chip::AttributeId attributeId,
1237 uint16_t manufacturerCode);
1239 /** @brief Scenes Cluster Server Message Sent
1241 * Server Message Sent
1243 * @param type The type of message sent
1244 * @param indexOrDestination The destination or address to which the message was sent
1245 * @param apsFrame The APS frame for the message
1246 * @param msgLen The length of the message
1247 * @param message The message that was sent
1248 * @param status The status of the sent message
1250 void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1251 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1252 EmberStatus status);
1254 /** @brief Scenes Cluster Server Pre Attribute Changed
1256 * server Pre Attribute Changed
1258 * @param endpoint Endpoint that is being initialized
1259 * @param attributeId Attribute to be changed
1260 * @param attributeType Attribute type
1261 * @param size Attribute size
1262 * @param value Attribute value
1264 EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1265 EmberAfAttributeType attributeType, uint8_t size,
1268 /** @brief Scenes Cluster Server Tick
1272 * @param endpoint Endpoint that is being served
1274 void emberAfScenesClusterServerTickCallback(chip::EndpointId endpoint);
1277 // Temperature Measurement Cluster server
1280 /** @brief Temperature Measurement Cluster Server Init
1284 * @param endpoint Endpoint that is being initialized
1286 void emberAfTemperatureMeasurementClusterServerInitCallback(chip::EndpointId endpoint);
1288 /** @brief Temperature Measurement Cluster Server Attribute Changed
1290 * Server Attribute Changed
1292 * @param endpoint Endpoint that is being initialized
1293 * @param attributeId Attribute that changed
1295 void emberAfTemperatureMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1297 /** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed
1299 * Server Manufacturer Specific Attribute Changed
1301 * @param endpoint Endpoint that is being initialized
1302 * @param attributeId Attribute that changed
1303 * @param manufacturerCode Manufacturer Code of the attribute that changed
1305 void emberAfTemperatureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1306 chip::AttributeId attributeId,
1307 uint16_t manufacturerCode);
1309 /** @brief Temperature Measurement Cluster Server Message Sent
1311 * Server Message Sent
1313 * @param type The type of message sent
1314 * @param indexOrDestination The destination or address to which the message was sent
1315 * @param apsFrame The APS frame for the message
1316 * @param msgLen The length of the message
1317 * @param message The message that was sent
1318 * @param status The status of the sent message
1320 void emberAfTemperatureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1321 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1322 EmberStatus status);
1324 /** @brief Temperature Measurement Cluster Server Pre Attribute Changed
1326 * server Pre Attribute Changed
1328 * @param endpoint Endpoint that is being initialized
1329 * @param attributeId Attribute to be changed
1330 * @param attributeType Attribute type
1331 * @param size Attribute size
1332 * @param value Attribute value
1334 EmberAfStatus emberAfTemperatureMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
1335 chip::AttributeId attributeId,
1336 EmberAfAttributeType attributeType,
1337 uint8_t size, uint8_t * value);
1339 /** @brief Temperature Measurement Cluster Server Tick
1343 * @param endpoint Endpoint that is being served
1345 void emberAfTemperatureMeasurementClusterServerTickCallback(chip::EndpointId endpoint);
1347 // Cluster Commands Callback
1350 * @brief Barrier Control Cluster BarrierControlGoToPercent Command callback
1351 * @param percentOpen
1354 bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen);
1357 * @brief Barrier Control Cluster BarrierControlStop Command callback
1360 bool emberAfBarrierControlClusterBarrierControlStopCallback();
1363 * @brief Color Control Cluster MoveColor Command callback
1366 * @param optionsMask
1367 * @param optionsOverride
1370 bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride);
1373 * @brief Color Control Cluster MoveColorTemperature Command callback
1376 * @param colorTemperatureMinimum
1377 * @param colorTemperatureMaximum
1378 * @param optionsMask
1379 * @param optionsOverride
1382 bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum,
1383 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
1384 uint8_t optionsOverride);
1387 * @brief Color Control Cluster MoveHue Command callback
1390 * @param optionsMask
1391 * @param optionsOverride
1394 bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
1397 * @brief Color Control Cluster MoveSaturation Command callback
1400 * @param optionsMask
1401 * @param optionsOverride
1404 bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
1407 * @brief Color Control Cluster MoveToColor Command callback
1410 * @param transitionTime
1411 * @param optionsMask
1412 * @param optionsOverride
1415 bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask,
1416 uint8_t optionsOverride);
1419 * @brief Color Control Cluster MoveToColorTemperature Command callback
1420 * @param colorTemperature
1421 * @param transitionTime
1422 * @param optionsMask
1423 * @param optionsOverride
1426 bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime,
1427 uint8_t optionsMask, uint8_t optionsOverride);
1430 * @brief Color Control Cluster MoveToHue Command callback
1433 * @param transitionTime
1434 * @param optionsMask
1435 * @param optionsOverride
1438 bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask,
1439 uint8_t optionsOverride);
1442 * @brief Color Control Cluster MoveToHueAndSaturation Command callback
1445 * @param transitionTime
1446 * @param optionsMask
1447 * @param optionsOverride
1450 bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime,
1451 uint8_t optionsMask, uint8_t optionsOverride);
1454 * @brief Color Control Cluster MoveToSaturation Command callback
1456 * @param transitionTime
1457 * @param optionsMask
1458 * @param optionsOverride
1461 bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask,
1462 uint8_t optionsOverride);
1465 * @brief Color Control Cluster StepColor Command callback
1468 * @param transitionTime
1469 * @param optionsMask
1470 * @param optionsOverride
1473 bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask,
1474 uint8_t optionsOverride);
1477 * @brief Color Control Cluster StepColorTemperature Command callback
1480 * @param transitionTime
1481 * @param colorTemperatureMinimum
1482 * @param colorTemperatureMaximum
1483 * @param optionsMask
1484 * @param optionsOverride
1487 bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime,
1488 uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum,
1489 uint8_t optionsMask, uint8_t optionsOverride);
1492 * @brief Color Control Cluster StepHue Command callback
1495 * @param transitionTime
1496 * @param optionsMask
1497 * @param optionsOverride
1500 bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
1501 uint8_t optionsOverride);
1504 * @brief Color Control Cluster StepSaturation Command callback
1507 * @param transitionTime
1508 * @param optionsMask
1509 * @param optionsOverride
1512 bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime,
1513 uint8_t optionsMask, uint8_t optionsOverride);
1516 * @brief Color Control Cluster StopMoveStep Command callback
1517 * @param optionsMask
1518 * @param optionsOverride
1521 bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride);
1524 * @brief Door Lock Cluster LockDoorResponse Command callback
1528 bool emberAfDoorLockClusterLockDoorResponseCallback(uint8_t status);
1531 * @brief Door Lock Cluster UnlockDoorResponse Command callback
1535 bool emberAfDoorLockClusterUnlockDoorResponseCallback(uint8_t status);
1538 * @brief Door Lock Cluster ClearAllPins Command callback
1541 bool emberAfDoorLockClusterClearAllPinsCallback();
1544 * @brief Door Lock Cluster ClearAllRfids Command callback
1547 bool emberAfDoorLockClusterClearAllRfidsCallback();
1550 * @brief Door Lock Cluster ClearHolidaySchedule Command callback
1554 bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId);
1557 * @brief Door Lock Cluster ClearPin Command callback
1561 bool emberAfDoorLockClusterClearPinCallback(uint16_t userId);
1564 * @brief Door Lock Cluster ClearRfid Command callback
1568 bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId);
1571 * @brief Door Lock Cluster ClearWeekdaySchedule Command callback
1576 bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1579 * @brief Door Lock Cluster ClearYeardaySchedule Command callback
1584 bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1587 * @brief Door Lock Cluster GetHolidaySchedule Command callback
1591 bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId);
1594 * @brief Door Lock Cluster GetLogRecord Command callback
1598 bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex);
1601 * @brief Door Lock Cluster GetPin Command callback
1605 bool emberAfDoorLockClusterGetPinCallback(uint16_t userId);
1608 * @brief Door Lock Cluster GetRfid Command callback
1612 bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId);
1615 * @brief Door Lock Cluster GetUserType Command callback
1619 bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId);
1622 * @brief Door Lock Cluster GetWeekdaySchedule Command callback
1627 bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1630 * @brief Door Lock Cluster GetYeardaySchedule Command callback
1635 bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1638 * @brief Door Lock Cluster LockDoor Command callback
1642 bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN);
1645 * @brief Door Lock Cluster SetHolidaySchedule Command callback
1647 * @param localStartTime
1648 * @param localEndTime
1649 * @param operatingModeDuringHoliday
1652 bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime,
1653 uint8_t operatingModeDuringHoliday);
1656 * @brief Door Lock Cluster SetPin Command callback
1663 bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin);
1666 * @brief Door Lock Cluster SetRfid Command callback
1673 bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id);
1676 * @brief Door Lock Cluster SetUserType Command callback
1681 bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType);
1684 * @brief Door Lock Cluster SetWeekdaySchedule Command callback
1689 * @param startMinute
1694 bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour,
1695 uint8_t startMinute, uint8_t endHour, uint8_t endMinute);
1698 * @brief Door Lock Cluster SetYeardaySchedule Command callback
1701 * @param localStartTime
1702 * @param localEndTime
1705 bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime,
1706 uint32_t localEndTime);
1709 * @brief Door Lock Cluster UnlockDoor Command callback
1713 bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN);
1716 * @brief Door Lock Cluster UnlockWithTimeout Command callback
1717 * @param timeoutInSeconds
1721 bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin);
1724 * @brief Groups Cluster AddGroup Command callback
1729 bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName);
1732 * @brief Groups Cluster AddGroupIfIdentifying Command callback
1737 bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName);
1740 * @brief Groups Cluster GetGroupMembership Command callback
1745 bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount,
1746 /* TYPE WARNING: array array defaults to */ uint8_t * groupList);
1749 * @brief Groups Cluster RemoveAllGroups Command callback
1752 bool emberAfGroupsClusterRemoveAllGroupsCallback();
1755 * @brief Groups Cluster RemoveGroup Command callback
1759 bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId);
1762 * @brief Groups Cluster ViewGroup Command callback
1766 bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId);
1769 * @brief IAS Zone Cluster ZoneEnrollResponse Command callback
1770 * @param enrollResponseCode
1774 bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId);
1777 * @brief Identify Cluster Identify Command callback
1778 * @param identifyTime
1781 bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime);
1784 * @brief Identify Cluster IdentifyQuery Command callback
1787 bool emberAfIdentifyClusterIdentifyQueryCallback();
1790 * @brief Level Control Cluster Move Command callback
1794 * @param optionOverride
1797 bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride);
1800 * @brief Level Control Cluster MoveToLevel Command callback
1802 * @param transitionTime
1804 * @param optionOverride
1807 bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask,
1808 uint8_t optionOverride);
1811 * @brief Level Control Cluster MoveToLevelWithOnOff Command callback
1813 * @param transitionTime
1816 bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime);
1819 * @brief Level Control Cluster MoveWithOnOff Command callback
1824 bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate);
1827 * @brief Level Control Cluster Step Command callback
1830 * @param transitionTime
1832 * @param optionOverride
1835 bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
1836 uint8_t optionOverride);
1839 * @brief Level Control Cluster StepWithOnOff Command callback
1842 * @param transitionTime
1845 bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime);
1848 * @brief Level Control Cluster Stop Command callback
1850 * @param optionOverride
1853 bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride);
1856 * @brief Level Control Cluster StopWithOnOff Command callback
1859 bool emberAfLevelControlClusterStopWithOnOffCallback();
1862 * @brief Low Power Cluster Sleep Command callback
1865 bool emberAfLowPowerClusterSleepCallback();
1868 * @brief Network Commissioning Cluster AddThreadNetwork Command callback
1869 * @param operationalDataset
1874 bool emberAfNetworkCommissioningClusterAddThreadNetworkCallback(chip::ByteSpan operationalDataset, uint64_t breadcrumb,
1875 uint32_t timeoutMs);
1878 * @brief Network Commissioning Cluster AddWiFiNetwork Command callback
1880 * @param credentials
1885 bool emberAfNetworkCommissioningClusterAddWiFiNetworkCallback(chip::ByteSpan ssid, chip::ByteSpan credentials, uint64_t breadcrumb,
1886 uint32_t timeoutMs);
1889 * @brief Network Commissioning Cluster DisableNetwork Command callback
1895 bool emberAfNetworkCommissioningClusterDisableNetworkCallback(chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
1898 * @brief Network Commissioning Cluster EnableNetwork Command callback
1904 bool emberAfNetworkCommissioningClusterEnableNetworkCallback(chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
1907 * @brief Network Commissioning Cluster GetLastNetworkCommissioningResult Command callback
1911 bool emberAfNetworkCommissioningClusterGetLastNetworkCommissioningResultCallback(uint32_t timeoutMs);
1914 * @brief Network Commissioning Cluster RemoveNetwork Command callback
1920 bool emberAfNetworkCommissioningClusterRemoveNetworkCallback(chip::ByteSpan NetworkID, uint64_t Breadcrumb, uint32_t TimeoutMs);
1923 * @brief Network Commissioning Cluster ScanNetworks Command callback
1929 bool emberAfNetworkCommissioningClusterScanNetworksCallback(chip::ByteSpan ssid, uint64_t breadcrumb, uint32_t timeoutMs);
1932 * @brief Network Commissioning Cluster UpdateThreadNetwork Command callback
1933 * @param operationalDataset
1938 bool emberAfNetworkCommissioningClusterUpdateThreadNetworkCallback(chip::ByteSpan operationalDataset, uint64_t breadcrumb,
1939 uint32_t timeoutMs);
1942 * @brief Network Commissioning Cluster UpdateWiFiNetwork Command callback
1944 * @param credentials
1949 bool emberAfNetworkCommissioningClusterUpdateWiFiNetworkCallback(chip::ByteSpan ssid, chip::ByteSpan credentials,
1950 uint64_t breadcrumb, uint32_t timeoutMs);
1953 * @brief On/off Cluster Off Command callback
1956 bool emberAfOnOffClusterOffCallback();
1959 * @brief On/off Cluster On Command callback
1962 bool emberAfOnOffClusterOnCallback();
1965 * @brief On/off Cluster Toggle Command callback
1968 bool emberAfOnOffClusterToggleCallback();
1971 * @brief Scenes Cluster AddScene Command callback
1974 * @param transitionTime
1976 * @param extensionFieldSets
1979 bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName,
1980 /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets);
1983 * @brief Scenes Cluster GetSceneMembership Command callback
1987 bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId);
1990 * @brief Scenes Cluster RecallScene Command callback
1993 * @param transitionTime
1996 bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime);
1999 * @brief Scenes Cluster RemoveAllScenes Command callback
2003 bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId);
2006 * @brief Scenes Cluster RemoveScene Command callback
2011 bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId);
2014 * @brief Scenes Cluster StoreScene Command callback
2019 bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId);
2022 * @brief Scenes Cluster ViewScene Command callback
2027 bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId);
2030 // Non-Cluster Related Callbacks
2033 /** @brief Add To Current App Tasks
2035 * This function is only useful to sleepy end devices. This function will note
2036 * the passed item as part of a set of tasks the application has outstanding
2037 * (e.g. message sent requiring APS acknwoledgement). This will affect how the
2038 * application behaves with regard to sleeping and polling. Until the
2039 * outstanding task is completed, the device may poll more frequently and sleep
2042 * @param tasks Ver.: always
2044 void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks);
2046 /** @brief Remove From Current App Tasks
2048 * This function is only useful to sleepy end devices. This function will
2049 * remove the passed item from the set of tasks the application has outstanding
2050 * (e.g. message sent requiring APS acknwoledgement). This will affect how the
2051 * application behaves with regard to sleeping and polling. Removing the item
2052 * from the list of outstanding tasks may allow the device to sleep longer and
2053 * poll less frequently. If there are other outstanding tasks the system may
2054 * still have to stay away and poll more often.
2056 * @param tasks Ver.: always
2058 void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks);
2060 /** @brief Allow Network Write Attribute
2062 * This function is called by the application framework before it writes an
2063 * attribute in response to a write attribute request from an external device.
2064 * The value passed into this callback is the value to which the attribute is to
2065 * be set by the framework.
2066 Example: In mirroring simple metering data
2067 * on an Energy Services Interface (ESI) (formerly called Energy Service Portal
2068 * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only
2069 * attributes on its mirror. The-meter-mirror sample application, located in
2070 * app/framework/sample-apps, uses this callback to allow the mirrored device to
2071 * write simple metering attributes on the mirror regardless of the fact that
2072 * most simple metering attributes are defined as read-only by the ZigBee
2074 Note: The ZCL specification does not (as of this
2075 * writing) specify any permission-level security for writing writeable
2076 * attributes. As far as the ZCL specification is concerned, if an attribute is
2077 * writeable, any device that has a link key for the device should be able to
2078 * write that attribute. Furthermore if an attribute is read only, it should not
2079 * be written over the air. Thus, if you implement permissions for writing
2080 * attributes as a feature, you MAY be operating outside the specification. This
2081 * is unlikely to be a problem for writing read-only attributes, but it may be a
2082 * problem for attributes that are writeable according to the specification but
2083 * restricted by the application implementing this callback.
2085 * @param endpoint Ver.: always
2086 * @param clusterId Ver.: always
2087 * @param attributeId Ver.: always
2088 * @param mask Ver.: always
2089 * @param manufacturerCode Ver.: always
2090 * @param value Ver.: always
2091 * @param type Ver.: always
2093 EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
2094 chip::AttributeId attributeId, uint8_t mask,
2095 uint16_t manufacturerCode, uint8_t * value, uint8_t type);
2097 /** @brief Attribute Read Access
2099 * This function is called whenever the Application Framework needs to check
2100 * access permission for an attribute read.
2102 * @param endpoint Ver.: always
2103 * @param clusterId Ver.: always
2104 * @param manufacturerCode Ver.: always
2105 * @param attributeId Ver.: always
2107 bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode,
2108 chip::AttributeId attributeId);
2110 /** @brief Attribute Write Access
2112 * This function is called whenever the Application Framework needs to check
2113 * access permission for an attribute write.
2115 * @param endpoint Ver.: always
2116 * @param clusterId Ver.: always
2117 * @param manufacturerCode Ver.: always
2118 * @param attributeId Ver.: always
2120 bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode,
2121 chip::AttributeId attributeId);
2123 /** @brief Default Response
2125 * This function is called by the application framework when a Default Response
2126 * command is received from an external device. The application should return
2127 * true if the message was processed or false if it was not.
2129 * @param clusterId The cluster identifier of this response. Ver.: always
2130 * @param commandId The command identifier to which this is a response. Ver.:
2132 * @param status Specifies either SUCCESS or the nature of the error that was
2133 * detected in the received command. Ver.: always
2135 bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status);
2137 /** @brief Configure Reporting Response
2139 * This function is called by the application framework when a Configure
2140 * Reporting Response command is received from an external device. The
2141 * application should return true if the message was processed or false if it
2144 * @param clusterId The cluster identifier of this response. Ver.: always
2145 * @param buffer Buffer containing the list of attribute status records. Ver.:
2147 * @param bufLen The length in bytes of the list. Ver.: always
2149 bool emberAfConfigureReportingResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2151 /** @brief Read Reporting Configuration Response
2153 * This function is called by the application framework when a Read Reporting
2154 * Configuration Response command is received from an external device. The
2155 * application should return true if the message was processed or false if it
2158 * @param clusterId The cluster identifier of this response. Ver.: always
2159 * @param buffer Buffer containing the list of attribute reporting configuration
2160 * records. Ver.: always
2161 * @param bufLen The length in bytes of the list. Ver.: always
2163 bool emberAfReadReportingConfigurationResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2165 /** @brief Discover Attributes Response
2167 * This function is called by the application framework when a Discover
2168 * Attributes Response or Discover Attributes Extended Response command is
2169 * received from an external device. The Discover Attributes Response command
2170 * contains a bool indicating if discovery is complete and a list of zero or
2171 * more attribute identifier/type records. The final argument indicates whether
2172 * the response is in the extended format or not. The application should return
2173 * true if the message was processed or false if it was not.
2175 * @param clusterId The cluster identifier of this response. Ver.: always
2176 * @param discoveryComplete Indicates whether there are more attributes to be
2177 * discovered. true if there are no more attributes to be discovered. Ver.:
2179 * @param buffer Buffer containing the list of attribute identifier/type
2180 * records. Ver.: always
2181 * @param bufLen The length in bytes of the list. Ver.: always
2182 * @param extended Indicates whether the response is in the extended format or
2185 bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen,
2188 /** @brief Discover Commands Generated Response
2190 * This function is called by the framework when Discover Commands Generated
2191 * Response is received.
2193 * @param clusterId The cluster identifier of this response. Ver.: always
2194 * @param manufacturerCode Manufacturer code Ver.: always
2195 * @param discoveryComplete Indicates whether there are more commands to be
2196 * discovered. Ver.: always
2197 * @param commandIds Buffer containing the list of command identifiers. Ver.:
2199 * @param commandIdCount The length of bytes of the list, whish is the same as
2200 * the number of identifiers. Ver.: always
2202 bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete,
2203 chip::CommandId * commandIds, uint16_t commandIdCount);
2205 /** @brief Discover Commands Received Response
2207 * This function is called by the framework when Discover Commands Received
2208 * Response is received.
2210 * @param clusterId The cluster identifier of this response. Ver.: always
2211 * @param manufacturerCode Manufacturer code Ver.: always
2212 * @param discoveryComplete Indicates whether there are more commands to be
2213 * discovered. Ver.: always
2214 * @param commandIds Buffer containing the list of command identifiers. Ver.:
2216 * @param commandIdCount The length of bytes of the list, whish is the same as
2217 * the number of identifiers. Ver.: always
2219 bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete,
2220 chip::CommandId * commandIds, uint16_t commandIdCount);
2222 /** @brief Pre Command Received
2224 * This callback is the second in the Application Framework's message processing
2225 * chain. At this point in the processing of incoming over-the-air messages, the
2226 * application has determined that the incoming message is a ZCL command. It
2227 * parses enough of the message to populate an EmberAfClusterCommand struct. The
2228 * Application Framework defines this struct value in a local scope to the
2229 * command processing but also makes it available through a global pointer
2230 * called emberAfCurrentCommand, in app/framework/util/util.c. When command
2231 * processing is complete, this pointer is cleared.
2233 * @param cmd Ver.: always
2235 bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd);
2237 /** @brief Pre Message Send
2239 * This function is called by the framework when it is about to pass a message
2240 * to the stack primitives for sending. This message may or may not be ZCL,
2241 * ZDO, or some other protocol. This is called prior to
2243 * fragmentation that may be done. If the function returns true it is assumed
2244 * the callback has consumed and processed the message. The callback must also
2245 * set the EmberStatus status code to be passed back to the caller. The
2246 * framework will do no further processing on the message.
2248 * function returns false then it is assumed that the callback has not processed
2249 * the mesasge and the framework will continue to process accordingly.
2251 * @param messageStruct The structure containing the parameters of the APS
2252 * message to be sent. Ver.: always
2253 * @param status A pointer to the status code value that will be returned to the
2254 * caller. Ver.: always
2256 bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status);
2258 /** @brief Message Sent
2260 * This function is called by the application framework from the message sent
2261 * handler, when it is informed by the stack regarding the message sent status.
2262 * All of the values passed to the emberMessageSentHandler are passed on to this
2263 * callback. This provides an opportunity for the application to verify that its
2264 * message has been sent successfully and take the appropriate action. This
2265 * callback should return a bool value of true or false. A value of true
2266 * indicates that the message sent notification has been handled and should not
2267 * be handled by the application framework.
2269 * @param type Ver.: always
2270 * @param indexOrDestination Ver.: always
2271 * @param apsFrame Ver.: always
2272 * @param msgLen Ver.: always
2273 * @param message Ver.: always
2274 * @param status Ver.: always
2276 bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, EmberApsFrame * apsFrame,
2277 uint16_t msgLen, uint8_t * message, EmberStatus status);
2279 /** @brief Pre Attribute Change
2281 * This function is called by the application framework before it changes an
2282 * attribute value. The value passed into this callback is the value to which
2283 * the attribute is to be set by the framework. The application should return
2284 * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus
2287 * @param endpoint Ver.: always
2288 * @param clusterId Ver.: always
2289 * @param attributeId Ver.: always
2290 * @param mask Ver.: always
2291 * @param manufacturerCode Ver.: always
2292 * @param type Ver.: always
2293 * @param size Ver.: always
2294 * @param value Ver.: always
2296 EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId,
2297 uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size,
2300 /** @brief Post Attribute Change
2302 * This function is called by the application framework after it changes an
2303 * attribute value. The value passed into this callback is the value to which
2304 * the attribute was set by the framework.
2306 * @param endpoint Ver.: always
2307 * @param clusterId Ver.: always
2308 * @param attributeId Ver.: always
2309 * @param mask Ver.: always
2310 * @param manufacturerCode Ver.: always
2311 * @param type Ver.: always
2312 * @param size Ver.: always
2313 * @param value Ver.: always
2315 void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId,
2316 uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value);
2318 /** @brief Read Attributes Response
2320 * This function is called by the application framework when a Read Attributes
2321 * Response command is received from an external device. The application should
2322 * return true if the message was processed or false if it was not.
2324 * @param clusterId The cluster identifier of this response. Ver.: always
2325 * @param buffer Buffer containing the list of read attribute status records.
2327 * @param bufLen The length in bytes of the list. Ver.: always
2329 bool emberAfReadAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2331 /** @brief External Attribute Read
2333 * Like emberAfExternalAttributeWriteCallback above, this function is called
2334 * when the framework needs to read an attribute that is not stored within the
2335 * Application Framework's data structures.
2336 All of the important
2337 * information about the attribute itself is passed as a pointer to an
2338 * EmberAfAttributeMetadata struct, which is stored within the application and
2339 * used to manage the attribute. A complete description of the
2340 * EmberAfAttributeMetadata struct is provided in
2341 * app/framework/include/af-types.h
2342 This function assumes that the
2343 * application is able to read the attribute, write it into the passed buffer,
2344 * and return immediately. Any attributes that require a state machine for
2345 * reading and writing are not really candidates for externalization at the
2346 * present time. The Application Framework does not currently include a state
2347 * machine for reading or writing attributes that must take place across a
2348 * series of application ticks. Attributes that cannot be read in a timely
2349 * manner should be stored within the Application Framework and updated
2350 * occasionally by the application code from within the
2351 * emberAfMainTickCallback.
2352 If the application was successfully able to
2353 * read the attribute and write it into the passed buffer, it should return a
2354 * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally
2355 * managed attribute value is smaller than what the buffer can hold. In the case
2356 * of a buffer overflow throw an appropriate error such as
2357 * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the
2358 * application was not able to read the attribute.
2360 * @param endpoint Ver.: always
2361 * @param clusterId Ver.: always
2362 * @param attributeMetadata Ver.: always
2363 * @param manufacturerCode Ver.: always
2364 * @param buffer Ver.: always
2365 * @param maxReadLength Ver.: always
2367 EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
2368 EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode,
2369 uint8_t * buffer, uint16_t maxReadLength);
2371 /** @brief Write Attributes Response
2373 * This function is called by the application framework when a Write Attributes
2374 * Response command is received from an external device. The application should
2375 * return true if the message was processed or false if it was not.
2377 * @param clusterId The cluster identifier of this response. Ver.: always
2378 * @param buffer Buffer containing the list of write attribute status records.
2380 * @param bufLen The length in bytes of the list. Ver.: always
2382 bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2384 /** @brief External Attribute Write
2386 * This function is called whenever the Application Framework needs to write an
2387 * attribute which is not stored within the data structures of the Application
2388 * Framework itself. One of the new features in Version 2 is the ability to
2389 * store attributes outside the Framework. This is particularly useful for
2390 * attributes that do not need to be stored because they can be read off the
2391 * hardware when they are needed, or are stored in some central location used by
2392 * many modules within the system. In this case, you can indicate that the
2393 * attribute is stored externally. When the framework needs to write an external
2394 * attribute, it makes a call to this callback.
2395 This callback is very
2396 * useful for host micros which need to store attributes in persistent memory.
2397 * Because each host micro (used with an Ember NCP) has its own type of
2398 * persistent memory storage, the Application Framework does not include the
2399 * ability to mark attributes as stored in flash the way that it does for Ember
2400 * SoCs like the EM35x. On a host micro, any attributes that need to be stored
2401 * in persistent memory should be marked as external and accessed through the
2402 * external read and write callbacks. Any host code associated with the
2403 * persistent storage should be implemented within this callback.
2405 * the important information about the attribute itself is passed as a pointer
2406 * to an EmberAfAttributeMetadata struct, which is stored within the application
2407 * and used to manage the attribute. A complete description of the
2408 * EmberAfAttributeMetadata struct is provided in
2409 * app/framework/include/af-types.h.
2410 This function assumes that the
2411 * application is able to write the attribute and return immediately. Any
2412 * attributes that require a state machine for reading and writing are not
2413 * candidates for externalization at the present time. The Application Framework
2414 * does not currently include a state machine for reading or writing attributes
2415 * that must take place across a series of application ticks. Attributes that
2416 * cannot be written immediately should be stored within the Application
2417 * Framework and updated occasionally by the application code from within the
2418 * emberAfMainTickCallback.
2419 If the application was successfully able to
2420 * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any
2421 * other return value indicates the application was not able to write the
2424 * @param endpoint Ver.: always
2425 * @param clusterId Ver.: always
2426 * @param attributeMetadata Ver.: always
2427 * @param manufacturerCode Ver.: always
2428 * @param buffer Ver.: always
2430 EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
2431 EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode,
2434 /** @brief Report Attributes
2436 * This function is called by the application framework when a Report Attributes
2437 * command is received from an external device. The application should return
2438 * true if the message was processed or false if it was not.
2440 * @param clusterId The cluster identifier of this command. Ver.: always
2441 * @param buffer Buffer containing the list of attribute report records. Ver.:
2443 * @param bufLen The length in bytes of the list. Ver.: always
2445 bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2447 /** @brief Get Current Time
2449 * This callback is called when device attempts to get current time from the
2450 * hardware. If this device has means to retrieve exact time, then this method
2451 * should implement it. If the callback can't provide the exact time it should
2452 * return 0 to indicate failure. Default action is to return 0, which indicates
2453 * that device does not have access to real time.
2456 uint32_t emberAfGetCurrentTimeCallback();
2458 /** @brief Get Endpoint Info
2460 * This function is a callback to an application implemented endpoint that
2461 * operates outside the normal application framework. When the framework wishes
2462 * to perform operations with that endpoint it uses this callback to retrieve
2463 * the endpoint's information. If the endpoint exists and the application can
2464 * provide data then true shall be returned. Otherwise the callback must return
2467 * @param endpoint The endpoint to retrieve data for. Ver.: always
2468 * @param returnNetworkIndex The index corresponding to the ZigBee network the
2469 * endpoint belongs to. If not using a multi-network device, 0 must be
2470 * returned. Otherwise on a multi-network device the stack will switch to this
2471 * network before sending the message. Ver.: always
2472 * @param returnEndpointInfo A pointer to a data struct that will be written
2473 * with information about the endpoint. Ver.: always
2475 bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex,
2476 EmberAfEndpointInfoStruct * returnEndpointInfo);
2478 /** @brief Get Source Route Overhead
2480 * This function is called by the framework to determine the overhead required
2481 * in the network frame for source routing to a particular destination.
2483 * @param destination The node id of the destination Ver.: always
2485 uint8_t emberAfGetSourceRouteOverheadCallback(chip::NodeId destination);
2487 /** @brief Registration Abort
2489 * This callback is called when the device should abort the registration
2493 void emberAfRegistrationAbortCallback();
2495 /** @brief Interpan Send Message
2497 * This function will send a raw MAC message with interpan frame format using
2498 * the passed parameters.
2500 * @param header Interpan header info Ver.: always
2501 * @param messageLength The length of the message received or to send Ver.:
2503 * @param message The message data received or to send. Ver.: always
2505 EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message);
2507 /** @brief Start Move
2509 * This function is called to initiate the process for a device to move (rejoin)
2513 bool emberAfStartMoveCallback();