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 Binding Cluster Init
70 * @param endpoint Endpoint that is being initialized
72 void emberAfBindingClusterInitCallback(chip::EndpointId endpoint);
74 /** @brief Color Control Cluster Init
78 * @param endpoint Endpoint that is being initialized
80 void emberAfColorControlClusterInitCallback(chip::EndpointId endpoint);
82 /** @brief Door Lock Cluster Init
86 * @param endpoint Endpoint that is being initialized
88 void emberAfDoorLockClusterInitCallback(chip::EndpointId endpoint);
90 /** @brief General Commissioning Cluster Init
94 * @param endpoint Endpoint that is being initialized
96 void emberAfGeneralCommissioningClusterInitCallback(chip::EndpointId endpoint);
98 /** @brief Group Key Management Cluster Init
102 * @param endpoint Endpoint that is being initialized
104 void emberAfGroupKeyManagementClusterInitCallback(chip::EndpointId endpoint);
106 /** @brief Groups Cluster Init
110 * @param endpoint Endpoint that is being initialized
112 void emberAfGroupsClusterInitCallback(chip::EndpointId endpoint);
114 /** @brief IAS Zone Cluster Init
118 * @param endpoint Endpoint that is being initialized
120 void emberAfIasZoneClusterInitCallback(chip::EndpointId endpoint);
122 /** @brief Identify Cluster Init
126 * @param endpoint Endpoint that is being initialized
128 void emberAfIdentifyClusterInitCallback(chip::EndpointId endpoint);
130 /** @brief Level Control Cluster Init
134 * @param endpoint Endpoint that is being initialized
136 void emberAfLevelControlClusterInitCallback(chip::EndpointId endpoint);
138 /** @brief Low Power Cluster Init
142 * @param endpoint Endpoint that is being initialized
144 void emberAfLowPowerClusterInitCallback(chip::EndpointId endpoint);
146 /** @brief Network Commissioning Cluster Init
150 * @param endpoint Endpoint that is being initialized
152 void emberAfNetworkCommissioningClusterInitCallback(chip::EndpointId endpoint);
154 /** @brief On/off Cluster Init
158 * @param endpoint Endpoint that is being initialized
160 void emberAfOnOffClusterInitCallback(chip::EndpointId endpoint);
162 /** @brief Scenes Cluster Init
166 * @param endpoint Endpoint that is being initialized
168 void emberAfScenesClusterInitCallback(chip::EndpointId endpoint);
170 /** @brief Temperature Measurement Cluster Init
174 * @param endpoint Endpoint that is being initialized
176 void emberAfTemperatureMeasurementClusterInitCallback(chip::EndpointId endpoint);
178 // Cluster Server/Client Init Functions
181 // Application Basic Cluster server
184 /** @brief Application Basic Cluster Server Init
188 * @param endpoint Endpoint that is being initialized
190 void emberAfApplicationBasicClusterServerInitCallback(chip::EndpointId endpoint);
192 /** @brief Application Basic Cluster Server Attribute Changed
194 * Server Attribute Changed
196 * @param endpoint Endpoint that is being initialized
197 * @param attributeId Attribute that changed
199 void emberAfApplicationBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
201 /** @brief Application Basic Cluster Server Manufacturer Specific Attribute Changed
203 * Server Manufacturer Specific Attribute Changed
205 * @param endpoint Endpoint that is being initialized
206 * @param attributeId Attribute that changed
207 * @param manufacturerCode Manufacturer Code of the attribute that changed
209 void emberAfApplicationBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
210 chip::AttributeId attributeId,
211 uint16_t manufacturerCode);
213 /** @brief Application Basic Cluster Server Message Sent
215 * Server Message Sent
217 * @param type The type of message sent
218 * @param indexOrDestination The destination or address to which the message was sent
219 * @param apsFrame The APS frame for the message
220 * @param msgLen The length of the message
221 * @param message The message that was sent
222 * @param status The status of the sent message
224 void emberAfApplicationBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
225 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
228 /** @brief Application Basic Cluster Server Pre Attribute Changed
230 * server Pre Attribute Changed
232 * @param endpoint Endpoint that is being initialized
233 * @param attributeId Attribute to be changed
234 * @param attributeType Attribute type
235 * @param size Attribute size
236 * @param value Attribute value
238 EmberAfStatus emberAfApplicationBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
239 chip::AttributeId attributeId,
240 EmberAfAttributeType attributeType, uint8_t size,
243 /** @brief Application Basic Cluster Server Tick
247 * @param endpoint Endpoint that is being served
249 void emberAfApplicationBasicClusterServerTickCallback(chip::EndpointId endpoint);
252 // Barrier Control Cluster server
255 /** @brief Barrier Control Cluster Server Init
259 * @param endpoint Endpoint that is being initialized
261 void emberAfBarrierControlClusterServerInitCallback(chip::EndpointId endpoint);
263 /** @brief Barrier Control Cluster Server Attribute Changed
265 * Server Attribute Changed
267 * @param endpoint Endpoint that is being initialized
268 * @param attributeId Attribute that changed
270 void emberAfBarrierControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
272 /** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed
274 * Server Manufacturer Specific Attribute Changed
276 * @param endpoint Endpoint that is being initialized
277 * @param attributeId Attribute that changed
278 * @param manufacturerCode Manufacturer Code of the attribute that changed
280 void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
281 chip::AttributeId attributeId,
282 uint16_t manufacturerCode);
284 /** @brief Barrier Control Cluster Server Message Sent
286 * Server Message Sent
288 * @param type The type of message sent
289 * @param indexOrDestination The destination or address to which the message was sent
290 * @param apsFrame The APS frame for the message
291 * @param msgLen The length of the message
292 * @param message The message that was sent
293 * @param status The status of the sent message
295 void emberAfBarrierControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
296 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
299 /** @brief Barrier Control Cluster Server Pre Attribute Changed
301 * server Pre Attribute Changed
303 * @param endpoint Endpoint that is being initialized
304 * @param attributeId Attribute to be changed
305 * @param attributeType Attribute type
306 * @param size Attribute size
307 * @param value Attribute value
309 EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
310 chip::AttributeId attributeId,
311 EmberAfAttributeType attributeType, uint8_t size,
314 /** @brief Barrier Control Cluster Server Tick
318 * @param endpoint Endpoint that is being served
320 void emberAfBarrierControlClusterServerTickCallback(chip::EndpointId endpoint);
323 // Basic Cluster server
326 /** @brief Basic Cluster Server Init
330 * @param endpoint Endpoint that is being initialized
332 void emberAfBasicClusterServerInitCallback(chip::EndpointId endpoint);
334 /** @brief Basic Cluster Server Attribute Changed
336 * Server Attribute Changed
338 * @param endpoint Endpoint that is being initialized
339 * @param attributeId Attribute that changed
341 void emberAfBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
343 /** @brief Basic Cluster Server Manufacturer Specific Attribute Changed
345 * Server Manufacturer Specific Attribute Changed
347 * @param endpoint Endpoint that is being initialized
348 * @param attributeId Attribute that changed
349 * @param manufacturerCode Manufacturer Code of the attribute that changed
351 void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
352 uint16_t manufacturerCode);
354 /** @brief Basic Cluster Server Message Sent
356 * Server Message Sent
358 * @param type The type of message sent
359 * @param indexOrDestination The destination or address to which the message was sent
360 * @param apsFrame The APS frame for the message
361 * @param msgLen The length of the message
362 * @param message The message that was sent
363 * @param status The status of the sent message
365 void emberAfBasicClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
366 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status);
368 /** @brief Basic Cluster Server Pre Attribute Changed
370 * server Pre Attribute Changed
372 * @param endpoint Endpoint that is being initialized
373 * @param attributeId Attribute to be changed
374 * @param attributeType Attribute type
375 * @param size Attribute size
376 * @param value Attribute value
378 EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
379 EmberAfAttributeType attributeType, uint8_t size,
382 /** @brief Basic Cluster Server Tick
386 * @param endpoint Endpoint that is being served
388 void emberAfBasicClusterServerTickCallback(chip::EndpointId endpoint);
391 // Binding Cluster server
394 /** @brief Binding Cluster Server Init
398 * @param endpoint Endpoint that is being initialized
400 void emberAfBindingClusterServerInitCallback(chip::EndpointId endpoint);
402 /** @brief Binding Cluster Server Attribute Changed
404 * Server Attribute Changed
406 * @param endpoint Endpoint that is being initialized
407 * @param attributeId Attribute that changed
409 void emberAfBindingClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
411 /** @brief Binding Cluster Server Manufacturer Specific Attribute Changed
413 * Server Manufacturer Specific Attribute Changed
415 * @param endpoint Endpoint that is being initialized
416 * @param attributeId Attribute that changed
417 * @param manufacturerCode Manufacturer Code of the attribute that changed
419 void emberAfBindingClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
420 chip::AttributeId attributeId,
421 uint16_t manufacturerCode);
423 /** @brief Binding Cluster Server Message Sent
425 * Server Message Sent
427 * @param type The type of message sent
428 * @param indexOrDestination The destination or address to which the message was sent
429 * @param apsFrame The APS frame for the message
430 * @param msgLen The length of the message
431 * @param message The message that was sent
432 * @param status The status of the sent message
434 void emberAfBindingClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
435 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
438 /** @brief Binding Cluster Server Pre Attribute Changed
440 * server Pre Attribute Changed
442 * @param endpoint Endpoint that is being initialized
443 * @param attributeId Attribute to be changed
444 * @param attributeType Attribute type
445 * @param size Attribute size
446 * @param value Attribute value
448 EmberAfStatus emberAfBindingClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
449 EmberAfAttributeType attributeType, uint8_t size,
452 /** @brief Binding Cluster Server Tick
456 * @param endpoint Endpoint that is being served
458 void emberAfBindingClusterServerTickCallback(chip::EndpointId endpoint);
461 // Color Control Cluster server
464 /** @brief Color Control Cluster Server Init
468 * @param endpoint Endpoint that is being initialized
470 void emberAfColorControlClusterServerInitCallback(chip::EndpointId endpoint);
472 /** @brief Color Control Cluster Server Attribute Changed
474 * Server Attribute Changed
476 * @param endpoint Endpoint that is being initialized
477 * @param attributeId Attribute that changed
479 void emberAfColorControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
481 /** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed
483 * Server Manufacturer Specific Attribute Changed
485 * @param endpoint Endpoint that is being initialized
486 * @param attributeId Attribute that changed
487 * @param manufacturerCode Manufacturer Code of the attribute that changed
489 void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
490 chip::AttributeId attributeId,
491 uint16_t manufacturerCode);
493 /** @brief Color Control Cluster Server Message Sent
495 * Server Message Sent
497 * @param type The type of message sent
498 * @param indexOrDestination The destination or address to which the message was sent
499 * @param apsFrame The APS frame for the message
500 * @param msgLen The length of the message
501 * @param message The message that was sent
502 * @param status The status of the sent message
504 void emberAfColorControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
505 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
508 /** @brief Color Control Cluster Server Pre Attribute Changed
510 * server Pre Attribute Changed
512 * @param endpoint Endpoint that is being initialized
513 * @param attributeId Attribute to be changed
514 * @param attributeType Attribute type
515 * @param size Attribute size
516 * @param value Attribute value
518 EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
519 EmberAfAttributeType attributeType, uint8_t size,
522 /** @brief Color Control Cluster Server Tick
526 * @param endpoint Endpoint that is being served
528 void emberAfColorControlClusterServerTickCallback(chip::EndpointId endpoint);
531 // Door Lock Cluster server
534 /** @brief Door Lock Cluster Server Init
538 * @param endpoint Endpoint that is being initialized
540 void emberAfDoorLockClusterServerInitCallback(chip::EndpointId endpoint);
542 /** @brief Door Lock Cluster Server Attribute Changed
544 * Server Attribute Changed
546 * @param endpoint Endpoint that is being initialized
547 * @param attributeId Attribute that changed
549 void emberAfDoorLockClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
551 /** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed
553 * Server Manufacturer Specific Attribute Changed
555 * @param endpoint Endpoint that is being initialized
556 * @param attributeId Attribute that changed
557 * @param manufacturerCode Manufacturer Code of the attribute that changed
559 void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
560 chip::AttributeId attributeId,
561 uint16_t manufacturerCode);
563 /** @brief Door Lock Cluster Server Message Sent
565 * Server Message Sent
567 * @param type The type of message sent
568 * @param indexOrDestination The destination or address to which the message was sent
569 * @param apsFrame The APS frame for the message
570 * @param msgLen The length of the message
571 * @param message The message that was sent
572 * @param status The status of the sent message
574 void emberAfDoorLockClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
575 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
578 /** @brief Door Lock Cluster Server Pre Attribute Changed
580 * server Pre Attribute Changed
582 * @param endpoint Endpoint that is being initialized
583 * @param attributeId Attribute to be changed
584 * @param attributeType Attribute type
585 * @param size Attribute size
586 * @param value Attribute value
588 EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
589 EmberAfAttributeType attributeType, uint8_t size,
592 /** @brief Door Lock Cluster Server Tick
596 * @param endpoint Endpoint that is being served
598 void emberAfDoorLockClusterServerTickCallback(chip::EndpointId endpoint);
601 // General Commissioning Cluster server
604 /** @brief General Commissioning Cluster Server Init
608 * @param endpoint Endpoint that is being initialized
610 void emberAfGeneralCommissioningClusterServerInitCallback(chip::EndpointId endpoint);
612 /** @brief General Commissioning Cluster Server Attribute Changed
614 * Server Attribute Changed
616 * @param endpoint Endpoint that is being initialized
617 * @param attributeId Attribute that changed
619 void emberAfGeneralCommissioningClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
621 /** @brief General Commissioning Cluster Server Manufacturer Specific Attribute Changed
623 * Server Manufacturer Specific Attribute Changed
625 * @param endpoint Endpoint that is being initialized
626 * @param attributeId Attribute that changed
627 * @param manufacturerCode Manufacturer Code of the attribute that changed
629 void emberAfGeneralCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
630 chip::AttributeId attributeId,
631 uint16_t manufacturerCode);
633 /** @brief General Commissioning Cluster Server Message Sent
635 * Server Message Sent
637 * @param type The type of message sent
638 * @param indexOrDestination The destination or address to which the message was sent
639 * @param apsFrame The APS frame for the message
640 * @param msgLen The length of the message
641 * @param message The message that was sent
642 * @param status The status of the sent message
644 void emberAfGeneralCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
645 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
648 /** @brief General Commissioning Cluster Server Pre Attribute Changed
650 * server Pre Attribute Changed
652 * @param endpoint Endpoint that is being initialized
653 * @param attributeId Attribute to be changed
654 * @param attributeType Attribute type
655 * @param size Attribute size
656 * @param value Attribute value
658 EmberAfStatus emberAfGeneralCommissioningClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
659 chip::AttributeId attributeId,
660 EmberAfAttributeType attributeType, uint8_t size,
663 /** @brief General Commissioning Cluster Server Tick
667 * @param endpoint Endpoint that is being served
669 void emberAfGeneralCommissioningClusterServerTickCallback(chip::EndpointId endpoint);
672 // Group Key Management Cluster server
675 /** @brief Group Key Management Cluster Server Init
679 * @param endpoint Endpoint that is being initialized
681 void emberAfGroupKeyManagementClusterServerInitCallback(chip::EndpointId endpoint);
683 /** @brief Group Key Management Cluster Server Attribute Changed
685 * Server Attribute Changed
687 * @param endpoint Endpoint that is being initialized
688 * @param attributeId Attribute that changed
690 void emberAfGroupKeyManagementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
692 /** @brief Group Key Management Cluster Server Manufacturer Specific Attribute Changed
694 * Server Manufacturer Specific Attribute Changed
696 * @param endpoint Endpoint that is being initialized
697 * @param attributeId Attribute that changed
698 * @param manufacturerCode Manufacturer Code of the attribute that changed
700 void emberAfGroupKeyManagementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
701 chip::AttributeId attributeId,
702 uint16_t manufacturerCode);
704 /** @brief Group Key Management Cluster Server Message Sent
706 * Server Message Sent
708 * @param type The type of message sent
709 * @param indexOrDestination The destination or address to which the message was sent
710 * @param apsFrame The APS frame for the message
711 * @param msgLen The length of the message
712 * @param message The message that was sent
713 * @param status The status of the sent message
715 void emberAfGroupKeyManagementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
716 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
719 /** @brief Group Key Management Cluster Server Pre Attribute Changed
721 * server Pre Attribute Changed
723 * @param endpoint Endpoint that is being initialized
724 * @param attributeId Attribute to be changed
725 * @param attributeType Attribute type
726 * @param size Attribute size
727 * @param value Attribute value
729 EmberAfStatus emberAfGroupKeyManagementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
730 chip::AttributeId attributeId,
731 EmberAfAttributeType attributeType, uint8_t size,
734 /** @brief Group Key Management Cluster Server Tick
738 * @param endpoint Endpoint that is being served
740 void emberAfGroupKeyManagementClusterServerTickCallback(chip::EndpointId endpoint);
743 // Groups Cluster server
746 /** @brief Groups Cluster Server Init
750 * @param endpoint Endpoint that is being initialized
752 void emberAfGroupsClusterServerInitCallback(chip::EndpointId endpoint);
754 /** @brief Groups Cluster Server Attribute Changed
756 * Server Attribute Changed
758 * @param endpoint Endpoint that is being initialized
759 * @param attributeId Attribute that changed
761 void emberAfGroupsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
763 /** @brief Groups Cluster Server Manufacturer Specific Attribute Changed
765 * Server Manufacturer Specific Attribute Changed
767 * @param endpoint Endpoint that is being initialized
768 * @param attributeId Attribute that changed
769 * @param manufacturerCode Manufacturer Code of the attribute that changed
771 void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
772 chip::AttributeId attributeId,
773 uint16_t manufacturerCode);
775 /** @brief Groups Cluster Server Message Sent
777 * Server Message Sent
779 * @param type The type of message sent
780 * @param indexOrDestination The destination or address to which the message was sent
781 * @param apsFrame The APS frame for the message
782 * @param msgLen The length of the message
783 * @param message The message that was sent
784 * @param status The status of the sent message
786 void emberAfGroupsClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
787 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
790 /** @brief Groups Cluster Server Pre Attribute Changed
792 * server Pre Attribute Changed
794 * @param endpoint Endpoint that is being initialized
795 * @param attributeId Attribute to be changed
796 * @param attributeType Attribute type
797 * @param size Attribute size
798 * @param value Attribute value
800 EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
801 EmberAfAttributeType attributeType, uint8_t size,
804 /** @brief Groups Cluster Server Tick
808 * @param endpoint Endpoint that is being served
810 void emberAfGroupsClusterServerTickCallback(chip::EndpointId endpoint);
813 // IAS Zone Cluster server
816 /** @brief IAS Zone Cluster Server Init
820 * @param endpoint Endpoint that is being initialized
822 void emberAfIasZoneClusterServerInitCallback(chip::EndpointId endpoint);
824 /** @brief IAS Zone Cluster Server Attribute Changed
826 * Server Attribute Changed
828 * @param endpoint Endpoint that is being initialized
829 * @param attributeId Attribute that changed
831 void emberAfIasZoneClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
833 /** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed
835 * Server Manufacturer Specific Attribute Changed
837 * @param endpoint Endpoint that is being initialized
838 * @param attributeId Attribute that changed
839 * @param manufacturerCode Manufacturer Code of the attribute that changed
841 void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
842 chip::AttributeId attributeId,
843 uint16_t manufacturerCode);
845 /** @brief IAS Zone Cluster Server Message Sent
847 * Server Message Sent
849 * @param type The type of message sent
850 * @param indexOrDestination The destination or address to which the message was sent
851 * @param apsFrame The APS frame for the message
852 * @param msgLen The length of the message
853 * @param message The message that was sent
854 * @param status The status of the sent message
856 void emberAfIasZoneClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
857 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
860 /** @brief IAS Zone Cluster Server Pre Attribute Changed
862 * server Pre Attribute Changed
864 * @param endpoint Endpoint that is being initialized
865 * @param attributeId Attribute to be changed
866 * @param attributeType Attribute type
867 * @param size Attribute size
868 * @param value Attribute value
870 EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
871 EmberAfAttributeType attributeType, uint8_t size,
874 /** @brief IAS Zone Cluster Server Tick
878 * @param endpoint Endpoint that is being served
880 void emberAfIasZoneClusterServerTickCallback(chip::EndpointId endpoint);
883 // Identify Cluster server
886 /** @brief Identify Cluster Server Init
890 * @param endpoint Endpoint that is being initialized
892 void emberAfIdentifyClusterServerInitCallback(chip::EndpointId endpoint);
894 /** @brief Identify Cluster Server Attribute Changed
896 * Server Attribute Changed
898 * @param endpoint Endpoint that is being initialized
899 * @param attributeId Attribute that changed
901 void emberAfIdentifyClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
903 /** @brief Identify Cluster Server Manufacturer Specific Attribute Changed
905 * Server Manufacturer Specific Attribute Changed
907 * @param endpoint Endpoint that is being initialized
908 * @param attributeId Attribute that changed
909 * @param manufacturerCode Manufacturer Code of the attribute that changed
911 void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
912 chip::AttributeId attributeId,
913 uint16_t manufacturerCode);
915 /** @brief Identify Cluster Server Message Sent
917 * Server Message Sent
919 * @param type The type of message sent
920 * @param indexOrDestination The destination or address to which the message was sent
921 * @param apsFrame The APS frame for the message
922 * @param msgLen The length of the message
923 * @param message The message that was sent
924 * @param status The status of the sent message
926 void emberAfIdentifyClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
927 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
930 /** @brief Identify Cluster Server Pre Attribute Changed
932 * server Pre Attribute Changed
934 * @param endpoint Endpoint that is being initialized
935 * @param attributeId Attribute to be changed
936 * @param attributeType Attribute type
937 * @param size Attribute size
938 * @param value Attribute value
940 EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
941 EmberAfAttributeType attributeType, uint8_t size,
944 /** @brief Identify Cluster Server Tick
948 * @param endpoint Endpoint that is being served
950 void emberAfIdentifyClusterServerTickCallback(chip::EndpointId endpoint);
953 // Level Control Cluster server
956 /** @brief Level Control Cluster Server Init
960 * @param endpoint Endpoint that is being initialized
962 void emberAfLevelControlClusterServerInitCallback(chip::EndpointId endpoint);
964 /** @brief Level Control Cluster Server Attribute Changed
966 * Server Attribute Changed
968 * @param endpoint Endpoint that is being initialized
969 * @param attributeId Attribute that changed
971 void emberAfLevelControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
973 /** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed
975 * Server Manufacturer Specific Attribute Changed
977 * @param endpoint Endpoint that is being initialized
978 * @param attributeId Attribute that changed
979 * @param manufacturerCode Manufacturer Code of the attribute that changed
981 void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
982 chip::AttributeId attributeId,
983 uint16_t manufacturerCode);
985 /** @brief Level Control Cluster Server Message Sent
987 * Server Message Sent
989 * @param type The type of message sent
990 * @param indexOrDestination The destination or address to which the message was sent
991 * @param apsFrame The APS frame for the message
992 * @param msgLen The length of the message
993 * @param message The message that was sent
994 * @param status The status of the sent message
996 void emberAfLevelControlClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
997 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1000 /** @brief Level Control Cluster Server Pre Attribute Changed
1002 * server Pre Attribute Changed
1004 * @param endpoint Endpoint that is being initialized
1005 * @param attributeId Attribute to be changed
1006 * @param attributeType Attribute type
1007 * @param size Attribute size
1008 * @param value Attribute value
1010 EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1011 EmberAfAttributeType attributeType, uint8_t size,
1014 /** @brief Level Control Cluster Server Tick
1018 * @param endpoint Endpoint that is being served
1020 void emberAfLevelControlClusterServerTickCallback(chip::EndpointId endpoint);
1023 // Low Power Cluster server
1026 /** @brief Low Power Cluster Server Init
1030 * @param endpoint Endpoint that is being initialized
1032 void emberAfLowPowerClusterServerInitCallback(chip::EndpointId endpoint);
1034 /** @brief Low Power Cluster Server Attribute Changed
1036 * Server Attribute Changed
1038 * @param endpoint Endpoint that is being initialized
1039 * @param attributeId Attribute that changed
1041 void emberAfLowPowerClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1043 /** @brief Low Power Cluster Server Manufacturer Specific Attribute Changed
1045 * Server Manufacturer Specific Attribute Changed
1047 * @param endpoint Endpoint that is being initialized
1048 * @param attributeId Attribute that changed
1049 * @param manufacturerCode Manufacturer Code of the attribute that changed
1051 void emberAfLowPowerClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1052 chip::AttributeId attributeId,
1053 uint16_t manufacturerCode);
1055 /** @brief Low Power Cluster Server Message Sent
1057 * Server Message Sent
1059 * @param type The type of message sent
1060 * @param indexOrDestination The destination or address to which the message was sent
1061 * @param apsFrame The APS frame for the message
1062 * @param msgLen The length of the message
1063 * @param message The message that was sent
1064 * @param status The status of the sent message
1066 void emberAfLowPowerClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1067 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1068 EmberStatus status);
1070 /** @brief Low Power Cluster Server Pre Attribute Changed
1072 * server Pre Attribute Changed
1074 * @param endpoint Endpoint that is being initialized
1075 * @param attributeId Attribute to be changed
1076 * @param attributeType Attribute type
1077 * @param size Attribute size
1078 * @param value Attribute value
1080 EmberAfStatus emberAfLowPowerClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1081 EmberAfAttributeType attributeType, uint8_t size,
1084 /** @brief Low Power Cluster Server Tick
1088 * @param endpoint Endpoint that is being served
1090 void emberAfLowPowerClusterServerTickCallback(chip::EndpointId endpoint);
1093 // Network Commissioning Cluster server
1096 /** @brief Network Commissioning Cluster Server Init
1100 * @param endpoint Endpoint that is being initialized
1102 void emberAfNetworkCommissioningClusterServerInitCallback(chip::EndpointId endpoint);
1104 /** @brief Network Commissioning Cluster Server Attribute Changed
1106 * Server Attribute Changed
1108 * @param endpoint Endpoint that is being initialized
1109 * @param attributeId Attribute that changed
1111 void emberAfNetworkCommissioningClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1113 /** @brief Network Commissioning Cluster Server Manufacturer Specific Attribute Changed
1115 * Server Manufacturer Specific Attribute Changed
1117 * @param endpoint Endpoint that is being initialized
1118 * @param attributeId Attribute that changed
1119 * @param manufacturerCode Manufacturer Code of the attribute that changed
1121 void emberAfNetworkCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1122 chip::AttributeId attributeId,
1123 uint16_t manufacturerCode);
1125 /** @brief Network Commissioning Cluster Server Message Sent
1127 * Server Message Sent
1129 * @param type The type of message sent
1130 * @param indexOrDestination The destination or address to which the message was sent
1131 * @param apsFrame The APS frame for the message
1132 * @param msgLen The length of the message
1133 * @param message The message that was sent
1134 * @param status The status of the sent message
1136 void emberAfNetworkCommissioningClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1137 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1138 EmberStatus status);
1140 /** @brief Network Commissioning Cluster Server Pre Attribute Changed
1142 * server Pre Attribute Changed
1144 * @param endpoint Endpoint that is being initialized
1145 * @param attributeId Attribute to be changed
1146 * @param attributeType Attribute type
1147 * @param size Attribute size
1148 * @param value Attribute value
1150 EmberAfStatus emberAfNetworkCommissioningClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
1151 chip::AttributeId attributeId,
1152 EmberAfAttributeType attributeType, uint8_t size,
1155 /** @brief Network Commissioning Cluster Server Tick
1159 * @param endpoint Endpoint that is being served
1161 void emberAfNetworkCommissioningClusterServerTickCallback(chip::EndpointId endpoint);
1164 // On/off Cluster server
1167 /** @brief On/off Cluster Server Init
1171 * @param endpoint Endpoint that is being initialized
1173 void emberAfOnOffClusterServerInitCallback(chip::EndpointId endpoint);
1175 /** @brief On/off Cluster Server Attribute Changed
1177 * Server Attribute Changed
1179 * @param endpoint Endpoint that is being initialized
1180 * @param attributeId Attribute that changed
1182 void emberAfOnOffClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1184 /** @brief On/off Cluster Server Manufacturer Specific Attribute Changed
1186 * Server Manufacturer Specific Attribute Changed
1188 * @param endpoint Endpoint that is being initialized
1189 * @param attributeId Attribute that changed
1190 * @param manufacturerCode Manufacturer Code of the attribute that changed
1192 void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1193 uint16_t manufacturerCode);
1195 /** @brief On/off Cluster Server Message Sent
1197 * Server Message Sent
1199 * @param type The type of message sent
1200 * @param indexOrDestination The destination or address to which the message was sent
1201 * @param apsFrame The APS frame for the message
1202 * @param msgLen The length of the message
1203 * @param message The message that was sent
1204 * @param status The status of the sent message
1206 void emberAfOnOffClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1207 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message, EmberStatus status);
1209 /** @brief On/off Cluster Server Pre Attribute Changed
1211 * server Pre Attribute Changed
1213 * @param endpoint Endpoint that is being initialized
1214 * @param attributeId Attribute to be changed
1215 * @param attributeType Attribute type
1216 * @param size Attribute size
1217 * @param value Attribute value
1219 EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1220 EmberAfAttributeType attributeType, uint8_t size,
1223 /** @brief On/off Cluster Server Tick
1227 * @param endpoint Endpoint that is being served
1229 void emberAfOnOffClusterServerTickCallback(chip::EndpointId endpoint);
1232 // Scenes Cluster server
1235 /** @brief Scenes Cluster Server Init
1239 * @param endpoint Endpoint that is being initialized
1241 void emberAfScenesClusterServerInitCallback(chip::EndpointId endpoint);
1243 /** @brief Scenes Cluster Server Attribute Changed
1245 * Server Attribute Changed
1247 * @param endpoint Endpoint that is being initialized
1248 * @param attributeId Attribute that changed
1250 void emberAfScenesClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1252 /** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed
1254 * Server Manufacturer Specific Attribute Changed
1256 * @param endpoint Endpoint that is being initialized
1257 * @param attributeId Attribute that changed
1258 * @param manufacturerCode Manufacturer Code of the attribute that changed
1260 void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1261 chip::AttributeId attributeId,
1262 uint16_t manufacturerCode);
1264 /** @brief Scenes Cluster Server Message Sent
1266 * Server Message Sent
1268 * @param type The type of message sent
1269 * @param indexOrDestination The destination or address to which the message was sent
1270 * @param apsFrame The APS frame for the message
1271 * @param msgLen The length of the message
1272 * @param message The message that was sent
1273 * @param status The status of the sent message
1275 void emberAfScenesClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1276 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1277 EmberStatus status);
1279 /** @brief Scenes Cluster Server Pre Attribute Changed
1281 * server Pre Attribute Changed
1283 * @param endpoint Endpoint that is being initialized
1284 * @param attributeId Attribute to be changed
1285 * @param attributeType Attribute type
1286 * @param size Attribute size
1287 * @param value Attribute value
1289 EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
1290 EmberAfAttributeType attributeType, uint8_t size,
1293 /** @brief Scenes Cluster Server Tick
1297 * @param endpoint Endpoint that is being served
1299 void emberAfScenesClusterServerTickCallback(chip::EndpointId endpoint);
1302 // Temperature Measurement Cluster server
1305 /** @brief Temperature Measurement Cluster Server Init
1309 * @param endpoint Endpoint that is being initialized
1311 void emberAfTemperatureMeasurementClusterServerInitCallback(chip::EndpointId endpoint);
1313 /** @brief Temperature Measurement Cluster Server Attribute Changed
1315 * Server Attribute Changed
1317 * @param endpoint Endpoint that is being initialized
1318 * @param attributeId Attribute that changed
1320 void emberAfTemperatureMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);
1322 /** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed
1324 * Server Manufacturer Specific Attribute Changed
1326 * @param endpoint Endpoint that is being initialized
1327 * @param attributeId Attribute that changed
1328 * @param manufacturerCode Manufacturer Code of the attribute that changed
1330 void emberAfTemperatureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
1331 chip::AttributeId attributeId,
1332 uint16_t manufacturerCode);
1334 /** @brief Temperature Measurement Cluster Server Message Sent
1336 * Server Message Sent
1338 * @param type The type of message sent
1339 * @param indexOrDestination The destination or address to which the message was sent
1340 * @param apsFrame The APS frame for the message
1341 * @param msgLen The length of the message
1342 * @param message The message that was sent
1343 * @param status The status of the sent message
1345 void emberAfTemperatureMeasurementClusterServerMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination,
1346 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
1347 EmberStatus status);
1349 /** @brief Temperature Measurement Cluster Server Pre Attribute Changed
1351 * server Pre Attribute Changed
1353 * @param endpoint Endpoint that is being initialized
1354 * @param attributeId Attribute to be changed
1355 * @param attributeType Attribute type
1356 * @param size Attribute size
1357 * @param value Attribute value
1359 EmberAfStatus emberAfTemperatureMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
1360 chip::AttributeId attributeId,
1361 EmberAfAttributeType attributeType,
1362 uint8_t size, uint8_t * value);
1364 /** @brief Temperature Measurement Cluster Server Tick
1368 * @param endpoint Endpoint that is being served
1370 void emberAfTemperatureMeasurementClusterServerTickCallback(chip::EndpointId endpoint);
1372 // Cluster Commands Callback
1375 * @brief Barrier Control Cluster BarrierControlGoToPercent Command callback
1376 * @param percentOpen
1379 bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(uint8_t percentOpen);
1382 * @brief Barrier Control Cluster BarrierControlStop Command callback
1385 bool emberAfBarrierControlClusterBarrierControlStopCallback();
1388 * @brief Basic Cluster MfgSpecificPing Command callback
1391 bool emberAfBasicClusterMfgSpecificPingCallback();
1394 * @brief Binding Cluster Bind Command callback
1401 bool emberAfBindingClusterBindCallback(chip::NodeId nodeId, chip::GroupId groupId, chip::EndpointId endpointId,
1402 chip::ClusterId clusterId);
1405 * @brief Binding Cluster Unbind Command callback
1412 bool emberAfBindingClusterUnbindCallback(chip::NodeId nodeId, chip::GroupId groupId, chip::EndpointId endpointId,
1413 chip::ClusterId clusterId);
1416 * @brief Color Control Cluster MoveColor Command callback
1419 * @param optionsMask
1420 * @param optionsOverride
1423 bool emberAfColorControlClusterMoveColorCallback(int16_t rateX, int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride);
1426 * @brief Color Control Cluster MoveColorTemperature Command callback
1429 * @param colorTemperatureMinimum
1430 * @param colorTemperatureMaximum
1431 * @param optionsMask
1432 * @param optionsOverride
1435 bool emberAfColorControlClusterMoveColorTemperatureCallback(uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum,
1436 uint16_t colorTemperatureMaximum, uint8_t optionsMask,
1437 uint8_t optionsOverride);
1440 * @brief Color Control Cluster MoveHue Command callback
1443 * @param optionsMask
1444 * @param optionsOverride
1447 bool emberAfColorControlClusterMoveHueCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
1450 * @brief Color Control Cluster MoveSaturation Command callback
1453 * @param optionsMask
1454 * @param optionsOverride
1457 bool emberAfColorControlClusterMoveSaturationCallback(uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
1460 * @brief Color Control Cluster MoveToColor Command callback
1463 * @param transitionTime
1464 * @param optionsMask
1465 * @param optionsOverride
1468 bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask,
1469 uint8_t optionsOverride);
1472 * @brief Color Control Cluster MoveToColorTemperature Command callback
1473 * @param colorTemperature
1474 * @param transitionTime
1475 * @param optionsMask
1476 * @param optionsOverride
1479 bool emberAfColorControlClusterMoveToColorTemperatureCallback(uint16_t colorTemperature, uint16_t transitionTime,
1480 uint8_t optionsMask, uint8_t optionsOverride);
1483 * @brief Color Control Cluster MoveToHue Command callback
1486 * @param transitionTime
1487 * @param optionsMask
1488 * @param optionsOverride
1491 bool emberAfColorControlClusterMoveToHueCallback(uint8_t hue, uint8_t direction, uint16_t transitionTime, uint8_t optionsMask,
1492 uint8_t optionsOverride);
1495 * @brief Color Control Cluster MoveToHueAndSaturation Command callback
1498 * @param transitionTime
1499 * @param optionsMask
1500 * @param optionsOverride
1503 bool emberAfColorControlClusterMoveToHueAndSaturationCallback(uint8_t hue, uint8_t saturation, uint16_t transitionTime,
1504 uint8_t optionsMask, uint8_t optionsOverride);
1507 * @brief Color Control Cluster MoveToSaturation Command callback
1509 * @param transitionTime
1510 * @param optionsMask
1511 * @param optionsOverride
1514 bool emberAfColorControlClusterMoveToSaturationCallback(uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask,
1515 uint8_t optionsOverride);
1518 * @brief Color Control Cluster StepColor Command callback
1521 * @param transitionTime
1522 * @param optionsMask
1523 * @param optionsOverride
1526 bool emberAfColorControlClusterStepColorCallback(int16_t stepX, int16_t stepY, uint16_t transitionTime, uint8_t optionsMask,
1527 uint8_t optionsOverride);
1530 * @brief Color Control Cluster StepColorTemperature Command callback
1533 * @param transitionTime
1534 * @param colorTemperatureMinimum
1535 * @param colorTemperatureMaximum
1536 * @param optionsMask
1537 * @param optionsOverride
1540 bool emberAfColorControlClusterStepColorTemperatureCallback(uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime,
1541 uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum,
1542 uint8_t optionsMask, uint8_t optionsOverride);
1545 * @brief Color Control Cluster StepHue Command callback
1548 * @param transitionTime
1549 * @param optionsMask
1550 * @param optionsOverride
1553 bool emberAfColorControlClusterStepHueCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
1554 uint8_t optionsOverride);
1557 * @brief Color Control Cluster StepSaturation Command callback
1560 * @param transitionTime
1561 * @param optionsMask
1562 * @param optionsOverride
1565 bool emberAfColorControlClusterStepSaturationCallback(uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime,
1566 uint8_t optionsMask, uint8_t optionsOverride);
1569 * @brief Color Control Cluster StopMoveStep Command callback
1570 * @param optionsMask
1571 * @param optionsOverride
1574 bool emberAfColorControlClusterStopMoveStepCallback(uint8_t optionsMask, uint8_t optionsOverride);
1577 * @brief Door Lock Cluster ClearAllPins Command callback
1580 bool emberAfDoorLockClusterClearAllPinsCallback();
1583 * @brief Door Lock Cluster ClearAllRfids Command callback
1586 bool emberAfDoorLockClusterClearAllRfidsCallback();
1589 * @brief Door Lock Cluster ClearHolidaySchedule Command callback
1593 bool emberAfDoorLockClusterClearHolidayScheduleCallback(uint8_t scheduleId);
1596 * @brief Door Lock Cluster ClearPin Command callback
1600 bool emberAfDoorLockClusterClearPinCallback(uint16_t userId);
1603 * @brief Door Lock Cluster ClearRfid Command callback
1607 bool emberAfDoorLockClusterClearRfidCallback(uint16_t userId);
1610 * @brief Door Lock Cluster ClearWeekdaySchedule Command callback
1615 bool emberAfDoorLockClusterClearWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1618 * @brief Door Lock Cluster ClearYeardaySchedule Command callback
1623 bool emberAfDoorLockClusterClearYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1626 * @brief Door Lock Cluster GetHolidaySchedule Command callback
1630 bool emberAfDoorLockClusterGetHolidayScheduleCallback(uint8_t scheduleId);
1633 * @brief Door Lock Cluster GetLogRecord Command callback
1637 bool emberAfDoorLockClusterGetLogRecordCallback(uint16_t logIndex);
1640 * @brief Door Lock Cluster GetPin Command callback
1644 bool emberAfDoorLockClusterGetPinCallback(uint16_t userId);
1647 * @brief Door Lock Cluster GetRfid Command callback
1651 bool emberAfDoorLockClusterGetRfidCallback(uint16_t userId);
1654 * @brief Door Lock Cluster GetUserType Command callback
1658 bool emberAfDoorLockClusterGetUserTypeCallback(uint16_t userId);
1661 * @brief Door Lock Cluster GetWeekdaySchedule Command callback
1666 bool emberAfDoorLockClusterGetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1669 * @brief Door Lock Cluster GetYeardaySchedule Command callback
1674 bool emberAfDoorLockClusterGetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId);
1677 * @brief Door Lock Cluster LockDoor Command callback
1681 bool emberAfDoorLockClusterLockDoorCallback(uint8_t * PIN);
1684 * @brief Door Lock Cluster SetHolidaySchedule Command callback
1686 * @param localStartTime
1687 * @param localEndTime
1688 * @param operatingModeDuringHoliday
1691 bool emberAfDoorLockClusterSetHolidayScheduleCallback(uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime,
1692 uint8_t operatingModeDuringHoliday);
1695 * @brief Door Lock Cluster SetPin Command callback
1702 bool emberAfDoorLockClusterSetPinCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * pin);
1705 * @brief Door Lock Cluster SetRfid Command callback
1712 bool emberAfDoorLockClusterSetRfidCallback(uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * id);
1715 * @brief Door Lock Cluster SetUserType Command callback
1720 bool emberAfDoorLockClusterSetUserTypeCallback(uint16_t userId, uint8_t userType);
1723 * @brief Door Lock Cluster SetWeekdaySchedule Command callback
1728 * @param startMinute
1733 bool emberAfDoorLockClusterSetWeekdayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour,
1734 uint8_t startMinute, uint8_t endHour, uint8_t endMinute);
1737 * @brief Door Lock Cluster SetYeardaySchedule Command callback
1740 * @param localStartTime
1741 * @param localEndTime
1744 bool emberAfDoorLockClusterSetYeardayScheduleCallback(uint8_t scheduleId, uint16_t userId, uint32_t localStartTime,
1745 uint32_t localEndTime);
1748 * @brief Door Lock Cluster UnlockDoor Command callback
1752 bool emberAfDoorLockClusterUnlockDoorCallback(uint8_t * PIN);
1755 * @brief Door Lock Cluster UnlockWithTimeout Command callback
1756 * @param timeoutInSeconds
1760 bool emberAfDoorLockClusterUnlockWithTimeoutCallback(uint16_t timeoutInSeconds, uint8_t * pin);
1763 * @brief General Commissioning Cluster ArmFailSafe Command callback
1764 * @param expiryLengthSeconds
1769 bool emberAfGeneralCommissioningClusterArmFailSafeCallback(uint16_t expiryLengthSeconds, uint64_t breadcrumb, uint32_t timeoutMs);
1772 * @brief General Commissioning Cluster CommissioningComplete Command callback
1775 bool emberAfGeneralCommissioningClusterCommissioningCompleteCallback();
1778 * @brief General Commissioning Cluster SetFabric Command callback
1780 * @param fabricSecret
1785 bool emberAfGeneralCommissioningClusterSetFabricCallback(chip::ByteSpan fabricId, chip::ByteSpan fabricSecret, uint64_t breadcrumb,
1786 uint32_t timeoutMs);
1789 * @brief Groups Cluster AddGroup Command callback
1794 bool emberAfGroupsClusterAddGroupCallback(uint16_t groupId, uint8_t * groupName);
1797 * @brief Groups Cluster AddGroupIfIdentifying Command callback
1802 bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(uint16_t groupId, uint8_t * groupName);
1805 * @brief Groups Cluster GetGroupMembership Command callback
1810 bool emberAfGroupsClusterGetGroupMembershipCallback(uint8_t groupCount,
1811 /* TYPE WARNING: array array defaults to */ uint8_t * groupList);
1814 * @brief Groups Cluster RemoveAllGroups Command callback
1817 bool emberAfGroupsClusterRemoveAllGroupsCallback();
1820 * @brief Groups Cluster RemoveGroup Command callback
1824 bool emberAfGroupsClusterRemoveGroupCallback(uint16_t groupId);
1827 * @brief Groups Cluster ViewGroup Command callback
1831 bool emberAfGroupsClusterViewGroupCallback(uint16_t groupId);
1834 * @brief IAS Zone Cluster ZoneEnrollResponse Command callback
1835 * @param enrollResponseCode
1839 bool emberAfIasZoneClusterZoneEnrollResponseCallback(uint8_t enrollResponseCode, uint8_t zoneId);
1842 * @brief Identify Cluster Identify Command callback
1843 * @param identifyTime
1846 bool emberAfIdentifyClusterIdentifyCallback(uint16_t identifyTime);
1849 * @brief Identify Cluster IdentifyQuery Command callback
1852 bool emberAfIdentifyClusterIdentifyQueryCallback();
1855 * @brief Level Control Cluster Move Command callback
1859 * @param optionOverride
1862 bool emberAfLevelControlClusterMoveCallback(uint8_t moveMode, uint8_t rate, uint8_t optionMask, uint8_t optionOverride);
1865 * @brief Level Control Cluster MoveToLevel Command callback
1867 * @param transitionTime
1869 * @param optionOverride
1872 bool emberAfLevelControlClusterMoveToLevelCallback(uint8_t level, uint16_t transitionTime, uint8_t optionMask,
1873 uint8_t optionOverride);
1876 * @brief Level Control Cluster MoveToLevelWithOnOff Command callback
1878 * @param transitionTime
1881 bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(uint8_t level, uint16_t transitionTime);
1884 * @brief Level Control Cluster MoveWithOnOff Command callback
1889 bool emberAfLevelControlClusterMoveWithOnOffCallback(uint8_t moveMode, uint8_t rate);
1892 * @brief Level Control Cluster Step Command callback
1895 * @param transitionTime
1897 * @param optionOverride
1900 bool emberAfLevelControlClusterStepCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask,
1901 uint8_t optionOverride);
1904 * @brief Level Control Cluster StepWithOnOff Command callback
1907 * @param transitionTime
1910 bool emberAfLevelControlClusterStepWithOnOffCallback(uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime);
1913 * @brief Level Control Cluster Stop Command callback
1915 * @param optionOverride
1918 bool emberAfLevelControlClusterStopCallback(uint8_t optionMask, uint8_t optionOverride);
1921 * @brief Level Control Cluster StopWithOnOff Command callback
1924 bool emberAfLevelControlClusterStopWithOnOffCallback();
1927 * @brief Low Power Cluster Sleep Command callback
1930 bool emberAfLowPowerClusterSleepCallback();
1933 * @brief Network Commissioning Cluster AddThreadNetwork Command callback
1934 * @param operationalDataset
1939 bool emberAfNetworkCommissioningClusterAddThreadNetworkCallback(chip::ByteSpan operationalDataset, uint64_t breadcrumb,
1940 uint32_t timeoutMs);
1943 * @brief Network Commissioning Cluster AddWiFiNetwork Command callback
1945 * @param credentials
1950 bool emberAfNetworkCommissioningClusterAddWiFiNetworkCallback(chip::ByteSpan ssid, chip::ByteSpan credentials, uint64_t breadcrumb,
1951 uint32_t timeoutMs);
1954 * @brief Network Commissioning Cluster DisableNetwork Command callback
1960 bool emberAfNetworkCommissioningClusterDisableNetworkCallback(chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
1963 * @brief Network Commissioning Cluster EnableNetwork Command callback
1969 bool emberAfNetworkCommissioningClusterEnableNetworkCallback(chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
1972 * @brief Network Commissioning Cluster GetLastNetworkCommissioningResult Command callback
1976 bool emberAfNetworkCommissioningClusterGetLastNetworkCommissioningResultCallback(uint32_t timeoutMs);
1979 * @brief Network Commissioning Cluster RemoveNetwork Command callback
1985 bool emberAfNetworkCommissioningClusterRemoveNetworkCallback(chip::ByteSpan NetworkID, uint64_t Breadcrumb, uint32_t TimeoutMs);
1988 * @brief Network Commissioning Cluster ScanNetworks Command callback
1994 bool emberAfNetworkCommissioningClusterScanNetworksCallback(chip::ByteSpan ssid, uint64_t breadcrumb, uint32_t timeoutMs);
1997 * @brief Network Commissioning Cluster UpdateThreadNetwork Command callback
1998 * @param operationalDataset
2003 bool emberAfNetworkCommissioningClusterUpdateThreadNetworkCallback(chip::ByteSpan operationalDataset, uint64_t breadcrumb,
2004 uint32_t timeoutMs);
2007 * @brief Network Commissioning Cluster UpdateWiFiNetwork Command callback
2009 * @param credentials
2014 bool emberAfNetworkCommissioningClusterUpdateWiFiNetworkCallback(chip::ByteSpan ssid, chip::ByteSpan credentials,
2015 uint64_t breadcrumb, uint32_t timeoutMs);
2018 * @brief On/off Cluster Off Command callback
2021 bool emberAfOnOffClusterOffCallback();
2024 * @brief On/off Cluster On Command callback
2027 bool emberAfOnOffClusterOnCallback();
2030 * @brief On/off Cluster Toggle Command callback
2033 bool emberAfOnOffClusterToggleCallback();
2036 * @brief Scenes Cluster AddScene Command callback
2039 * @param transitionTime
2041 * @param extensionFieldSets
2044 bool emberAfScenesClusterAddSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName,
2045 /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets);
2048 * @brief Scenes Cluster GetSceneMembership Command callback
2052 bool emberAfScenesClusterGetSceneMembershipCallback(uint16_t groupId);
2055 * @brief Scenes Cluster RecallScene Command callback
2058 * @param transitionTime
2061 bool emberAfScenesClusterRecallSceneCallback(uint16_t groupId, uint8_t sceneId, uint16_t transitionTime);
2064 * @brief Scenes Cluster RemoveAllScenes Command callback
2068 bool emberAfScenesClusterRemoveAllScenesCallback(uint16_t groupId);
2071 * @brief Scenes Cluster RemoveScene Command callback
2076 bool emberAfScenesClusterRemoveSceneCallback(uint16_t groupId, uint8_t sceneId);
2079 * @brief Scenes Cluster StoreScene Command callback
2084 bool emberAfScenesClusterStoreSceneCallback(uint16_t groupId, uint8_t sceneId);
2087 * @brief Scenes Cluster ViewScene Command callback
2092 bool emberAfScenesClusterViewSceneCallback(uint16_t groupId, uint8_t sceneId);
2095 // Non-Cluster Related Callbacks
2098 /** @brief Add To Current App Tasks
2100 * This function is only useful to sleepy end devices. This function will note
2101 * the passed item as part of a set of tasks the application has outstanding
2102 * (e.g. message sent requiring APS acknwoledgement). This will affect how the
2103 * application behaves with regard to sleeping and polling. Until the
2104 * outstanding task is completed, the device may poll more frequently and sleep
2107 * @param tasks Ver.: always
2109 void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks);
2111 /** @brief Remove From Current App Tasks
2113 * This function is only useful to sleepy end devices. This function will
2114 * remove the passed item from the set of tasks the application has outstanding
2115 * (e.g. message sent requiring APS acknwoledgement). This will affect how the
2116 * application behaves with regard to sleeping and polling. Removing the item
2117 * from the list of outstanding tasks may allow the device to sleep longer and
2118 * poll less frequently. If there are other outstanding tasks the system may
2119 * still have to stay away and poll more often.
2121 * @param tasks Ver.: always
2123 void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks);
2125 /** @brief Allow Network Write Attribute
2127 * This function is called by the application framework before it writes an
2128 * attribute in response to a write attribute request from an external device.
2129 * The value passed into this callback is the value to which the attribute is to
2130 * be set by the framework.
2131 Example: In mirroring simple metering data
2132 * on an Energy Services Interface (ESI) (formerly called Energy Service Portal
2133 * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only
2134 * attributes on its mirror. The-meter-mirror sample application, located in
2135 * app/framework/sample-apps, uses this callback to allow the mirrored device to
2136 * write simple metering attributes on the mirror regardless of the fact that
2137 * most simple metering attributes are defined as read-only by the ZigBee
2139 Note: The ZCL specification does not (as of this
2140 * writing) specify any permission-level security for writing writeable
2141 * attributes. As far as the ZCL specification is concerned, if an attribute is
2142 * writeable, any device that has a link key for the device should be able to
2143 * write that attribute. Furthermore if an attribute is read only, it should not
2144 * be written over the air. Thus, if you implement permissions for writing
2145 * attributes as a feature, you MAY be operating outside the specification. This
2146 * is unlikely to be a problem for writing read-only attributes, but it may be a
2147 * problem for attributes that are writeable according to the specification but
2148 * restricted by the application implementing this callback.
2150 * @param endpoint Ver.: always
2151 * @param clusterId Ver.: always
2152 * @param attributeId Ver.: always
2153 * @param mask Ver.: always
2154 * @param manufacturerCode Ver.: always
2155 * @param value Ver.: always
2156 * @param type Ver.: always
2158 EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
2159 chip::AttributeId attributeId, uint8_t mask,
2160 uint16_t manufacturerCode, uint8_t * value, uint8_t type);
2162 /** @brief Attribute Read Access
2164 * This function is called whenever the Application Framework needs to check
2165 * access permission for an attribute read.
2167 * @param endpoint Ver.: always
2168 * @param clusterId Ver.: always
2169 * @param manufacturerCode Ver.: always
2170 * @param attributeId Ver.: always
2172 bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode,
2173 chip::AttributeId attributeId);
2175 /** @brief Attribute Write Access
2177 * This function is called whenever the Application Framework needs to check
2178 * access permission for an attribute write.
2180 * @param endpoint Ver.: always
2181 * @param clusterId Ver.: always
2182 * @param manufacturerCode Ver.: always
2183 * @param attributeId Ver.: always
2185 bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode,
2186 chip::AttributeId attributeId);
2188 /** @brief Default Response
2190 * This function is called by the application framework when a Default Response
2191 * command is received from an external device. The application should return
2192 * true if the message was processed or false if it was not.
2194 * @param clusterId The cluster identifier of this response. Ver.: always
2195 * @param commandId The command identifier to which this is a response. Ver.:
2197 * @param status Specifies either SUCCESS or the nature of the error that was
2198 * detected in the received command. Ver.: always
2200 bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status);
2202 /** @brief Configure Reporting Response
2204 * This function is called by the application framework when a Configure
2205 * Reporting Response command is received from an external device. The
2206 * application should return true if the message was processed or false if it
2209 * @param clusterId The cluster identifier of this response. Ver.: always
2210 * @param buffer Buffer containing the list of attribute status records. Ver.:
2212 * @param bufLen The length in bytes of the list. Ver.: always
2214 bool emberAfConfigureReportingResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2216 /** @brief Read Reporting Configuration Response
2218 * This function is called by the application framework when a Read Reporting
2219 * Configuration Response command is received from an external device. The
2220 * application should return true if the message was processed or false if it
2223 * @param clusterId The cluster identifier of this response. Ver.: always
2224 * @param buffer Buffer containing the list of attribute reporting configuration
2225 * records. Ver.: always
2226 * @param bufLen The length in bytes of the list. Ver.: always
2228 bool emberAfReadReportingConfigurationResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2230 /** @brief Discover Attributes Response
2232 * This function is called by the application framework when a Discover
2233 * Attributes Response or Discover Attributes Extended Response command is
2234 * received from an external device. The Discover Attributes Response command
2235 * contains a bool indicating if discovery is complete and a list of zero or
2236 * more attribute identifier/type records. The final argument indicates whether
2237 * the response is in the extended format or not. The application should return
2238 * true if the message was processed or false if it was not.
2240 * @param clusterId The cluster identifier of this response. Ver.: always
2241 * @param discoveryComplete Indicates whether there are more attributes to be
2242 * discovered. true if there are no more attributes to be discovered. Ver.:
2244 * @param buffer Buffer containing the list of attribute identifier/type
2245 * records. Ver.: always
2246 * @param bufLen The length in bytes of the list. Ver.: always
2247 * @param extended Indicates whether the response is in the extended format or
2250 bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen,
2253 /** @brief Discover Commands Generated Response
2255 * This function is called by the framework when Discover Commands Generated
2256 * Response is received.
2258 * @param clusterId The cluster identifier of this response. Ver.: always
2259 * @param manufacturerCode Manufacturer code Ver.: always
2260 * @param discoveryComplete Indicates whether there are more commands to be
2261 * discovered. Ver.: always
2262 * @param commandIds Buffer containing the list of command identifiers. Ver.:
2264 * @param commandIdCount The length of bytes of the list, whish is the same as
2265 * the number of identifiers. Ver.: always
2267 bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete,
2268 chip::CommandId * commandIds, uint16_t commandIdCount);
2270 /** @brief Discover Commands Received Response
2272 * This function is called by the framework when Discover Commands Received
2273 * Response is received.
2275 * @param clusterId The cluster identifier of this response. Ver.: always
2276 * @param manufacturerCode Manufacturer code Ver.: always
2277 * @param discoveryComplete Indicates whether there are more commands to be
2278 * discovered. Ver.: always
2279 * @param commandIds Buffer containing the list of command identifiers. Ver.:
2281 * @param commandIdCount The length of bytes of the list, whish is the same as
2282 * the number of identifiers. Ver.: always
2284 bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete,
2285 chip::CommandId * commandIds, uint16_t commandIdCount);
2287 /** @brief Pre Command Received
2289 * This callback is the second in the Application Framework's message processing
2290 * chain. At this point in the processing of incoming over-the-air messages, the
2291 * application has determined that the incoming message is a ZCL command. It
2292 * parses enough of the message to populate an EmberAfClusterCommand struct. The
2293 * Application Framework defines this struct value in a local scope to the
2294 * command processing but also makes it available through a global pointer
2295 * called emberAfCurrentCommand, in app/framework/util/util.c. When command
2296 * processing is complete, this pointer is cleared.
2298 * @param cmd Ver.: always
2300 bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd);
2302 /** @brief Pre Message Send
2304 * This function is called by the framework when it is about to pass a message
2305 * to the stack primitives for sending. This message may or may not be ZCL,
2306 * ZDO, or some other protocol. This is called prior to
2308 * fragmentation that may be done. If the function returns true it is assumed
2309 * the callback has consumed and processed the message. The callback must also
2310 * set the EmberStatus status code to be passed back to the caller. The
2311 * framework will do no further processing on the message.
2313 * function returns false then it is assumed that the callback has not processed
2314 * the mesasge and the framework will continue to process accordingly.
2316 * @param messageStruct The structure containing the parameters of the APS
2317 * message to be sent. Ver.: always
2318 * @param status A pointer to the status code value that will be returned to the
2319 * caller. Ver.: always
2321 bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status);
2323 /** @brief Message Sent
2325 * This function is called by the application framework from the message sent
2326 * handler, when it is informed by the stack regarding the message sent status.
2327 * All of the values passed to the emberMessageSentHandler are passed on to this
2328 * callback. This provides an opportunity for the application to verify that its
2329 * message has been sent successfully and take the appropriate action. This
2330 * callback should return a bool value of true or false. A value of true
2331 * indicates that the message sent notification has been handled and should not
2332 * be handled by the application framework.
2334 * @param type Ver.: always
2335 * @param indexOrDestination Ver.: always
2336 * @param apsFrame Ver.: always
2337 * @param msgLen Ver.: always
2338 * @param message Ver.: always
2339 * @param status Ver.: always
2341 bool emberAfMessageSentCallback(EmberOutgoingMessageType type, uint64_t indexOrDestination, EmberApsFrame * apsFrame,
2342 uint16_t msgLen, uint8_t * message, EmberStatus status);
2344 /** @brief Pre Attribute Change
2346 * This function is called by the application framework before it changes an
2347 * attribute value. The value passed into this callback is the value to which
2348 * the attribute is to be set by the framework. The application should return
2349 * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus
2352 * @param endpoint Ver.: always
2353 * @param clusterId Ver.: always
2354 * @param attributeId Ver.: always
2355 * @param mask Ver.: always
2356 * @param manufacturerCode Ver.: always
2357 * @param type Ver.: always
2358 * @param size Ver.: always
2359 * @param value Ver.: always
2361 EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId,
2362 uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size,
2365 /** @brief Post Attribute Change
2367 * This function is called by the application framework after it changes an
2368 * attribute value. The value passed into this callback is the value to which
2369 * the attribute was set by the framework.
2371 * @param endpoint Ver.: always
2372 * @param clusterId Ver.: always
2373 * @param attributeId Ver.: always
2374 * @param mask Ver.: always
2375 * @param manufacturerCode Ver.: always
2376 * @param type Ver.: always
2377 * @param size Ver.: always
2378 * @param value Ver.: always
2380 void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId,
2381 uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint8_t size, uint8_t * value);
2383 /** @brief Read Attributes Response
2385 * This function is called by the application framework when a Read Attributes
2386 * Response command is received from an external device. The application should
2387 * return true if the message was processed or false if it was not.
2389 * @param clusterId The cluster identifier of this response. Ver.: always
2390 * @param buffer Buffer containing the list of read attribute status records.
2392 * @param bufLen The length in bytes of the list. Ver.: always
2394 bool emberAfReadAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2396 /** @brief External Attribute Read
2398 * Like emberAfExternalAttributeWriteCallback above, this function is called
2399 * when the framework needs to read an attribute that is not stored within the
2400 * Application Framework's data structures.
2401 All of the important
2402 * information about the attribute itself is passed as a pointer to an
2403 * EmberAfAttributeMetadata struct, which is stored within the application and
2404 * used to manage the attribute. A complete description of the
2405 * EmberAfAttributeMetadata struct is provided in
2406 * app/framework/include/af-types.h
2407 This function assumes that the
2408 * application is able to read the attribute, write it into the passed buffer,
2409 * and return immediately. Any attributes that require a state machine for
2410 * reading and writing are not really candidates for externalization at the
2411 * present time. The Application Framework does not currently include a state
2412 * machine for reading or writing attributes that must take place across a
2413 * series of application ticks. Attributes that cannot be read in a timely
2414 * manner should be stored within the Application Framework and updated
2415 * occasionally by the application code from within the
2416 * emberAfMainTickCallback.
2417 If the application was successfully able to
2418 * read the attribute and write it into the passed buffer, it should return a
2419 * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally
2420 * managed attribute value is smaller than what the buffer can hold. In the case
2421 * of a buffer overflow throw an appropriate error such as
2422 * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the
2423 * application was not able to read the attribute.
2425 * @param endpoint Ver.: always
2426 * @param clusterId Ver.: always
2427 * @param attributeMetadata Ver.: always
2428 * @param manufacturerCode Ver.: always
2429 * @param buffer Ver.: always
2430 * @param maxReadLength Ver.: always
2432 EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
2433 EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode,
2434 uint8_t * buffer, uint16_t maxReadLength);
2436 /** @brief Write Attributes Response
2438 * This function is called by the application framework when a Write Attributes
2439 * Response command is received from an external device. The application should
2440 * return true if the message was processed or false if it was not.
2442 * @param clusterId The cluster identifier of this response. Ver.: always
2443 * @param buffer Buffer containing the list of write attribute status records.
2445 * @param bufLen The length in bytes of the list. Ver.: always
2447 bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2449 /** @brief External Attribute Write
2451 * This function is called whenever the Application Framework needs to write an
2452 * attribute which is not stored within the data structures of the Application
2453 * Framework itself. One of the new features in Version 2 is the ability to
2454 * store attributes outside the Framework. This is particularly useful for
2455 * attributes that do not need to be stored because they can be read off the
2456 * hardware when they are needed, or are stored in some central location used by
2457 * many modules within the system. In this case, you can indicate that the
2458 * attribute is stored externally. When the framework needs to write an external
2459 * attribute, it makes a call to this callback.
2460 This callback is very
2461 * useful for host micros which need to store attributes in persistent memory.
2462 * Because each host micro (used with an Ember NCP) has its own type of
2463 * persistent memory storage, the Application Framework does not include the
2464 * ability to mark attributes as stored in flash the way that it does for Ember
2465 * SoCs like the EM35x. On a host micro, any attributes that need to be stored
2466 * in persistent memory should be marked as external and accessed through the
2467 * external read and write callbacks. Any host code associated with the
2468 * persistent storage should be implemented within this callback.
2470 * the important information about the attribute itself is passed as a pointer
2471 * to an EmberAfAttributeMetadata struct, which is stored within the application
2472 * and used to manage the attribute. A complete description of the
2473 * EmberAfAttributeMetadata struct is provided in
2474 * app/framework/include/af-types.h.
2475 This function assumes that the
2476 * application is able to write the attribute and return immediately. Any
2477 * attributes that require a state machine for reading and writing are not
2478 * candidates for externalization at the present time. The Application Framework
2479 * does not currently include a state machine for reading or writing attributes
2480 * that must take place across a series of application ticks. Attributes that
2481 * cannot be written immediately should be stored within the Application
2482 * Framework and updated occasionally by the application code from within the
2483 * emberAfMainTickCallback.
2484 If the application was successfully able to
2485 * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any
2486 * other return value indicates the application was not able to write the
2489 * @param endpoint Ver.: always
2490 * @param clusterId Ver.: always
2491 * @param attributeMetadata Ver.: always
2492 * @param manufacturerCode Ver.: always
2493 * @param buffer Ver.: always
2495 EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
2496 EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode,
2499 /** @brief Report Attributes
2501 * This function is called by the application framework when a Report Attributes
2502 * command is received from an external device. The application should return
2503 * true if the message was processed or false if it was not.
2505 * @param clusterId The cluster identifier of this command. Ver.: always
2506 * @param buffer Buffer containing the list of attribute report records. Ver.:
2508 * @param bufLen The length in bytes of the list. Ver.: always
2510 bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);
2512 /** @brief Get Current Time
2514 * This callback is called when device attempts to get current time from the
2515 * hardware. If this device has means to retrieve exact time, then this method
2516 * should implement it. If the callback can't provide the exact time it should
2517 * return 0 to indicate failure. Default action is to return 0, which indicates
2518 * that device does not have access to real time.
2521 uint32_t emberAfGetCurrentTimeCallback();
2523 /** @brief Get Endpoint Info
2525 * This function is a callback to an application implemented endpoint that
2526 * operates outside the normal application framework. When the framework wishes
2527 * to perform operations with that endpoint it uses this callback to retrieve
2528 * the endpoint's information. If the endpoint exists and the application can
2529 * provide data then true shall be returned. Otherwise the callback must return
2532 * @param endpoint The endpoint to retrieve data for. Ver.: always
2533 * @param returnNetworkIndex The index corresponding to the ZigBee network the
2534 * endpoint belongs to. If not using a multi-network device, 0 must be
2535 * returned. Otherwise on a multi-network device the stack will switch to this
2536 * network before sending the message. Ver.: always
2537 * @param returnEndpointInfo A pointer to a data struct that will be written
2538 * with information about the endpoint. Ver.: always
2540 bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex,
2541 EmberAfEndpointInfoStruct * returnEndpointInfo);
2543 /** @brief Get Source Route Overhead
2545 * This function is called by the framework to determine the overhead required
2546 * in the network frame for source routing to a particular destination.
2548 * @param destination The node id of the destination Ver.: always
2550 uint8_t emberAfGetSourceRouteOverheadCallback(chip::NodeId destination);
2552 /** @brief Registration Abort
2554 * This callback is called when the device should abort the registration
2558 void emberAfRegistrationAbortCallback();
2560 /** @brief Interpan Send Message
2562 * This function will send a raw MAC message with interpan frame format using
2563 * the passed parameters.
2565 * @param header Interpan header info Ver.: always
2566 * @param messageLength The length of the message received or to send Ver.:
2568 * @param message The message data received or to send. Ver.: always
2570 EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message);
2572 /** @brief Start Move
2574 * This function is called to initiate the process for a device to move (rejoin)
2578 bool emberAfStartMoveCallback();