Imported more library files

Not compiling currently
This commit is contained in:
2025-04-12 23:37:19 +01:00
parent 264a3462e0
commit 9d06f983af
2518 changed files with 1021900 additions and 52 deletions

149
autogen/gatt_db.c Normal file
View File

@@ -0,0 +1,149 @@
/********************************************************************
* Autogenerated file, do not edit.
*******************************************************************/
#include <stdint.h>
#include "sli_bt_gattdb_def.h"
#define GATT_HEADER(F) F
#define GATT_DATA(F) F
GATT_DATA(const uint16_t gattdb_uuidtable_16_map[]) =
{
0x2800,
0x2801,
0x2803,
0x2a00,
0x2a01,
0x2a29,
0x2a24,
0x2a23,
0x2a05,
0x2b2a,
0x2b29,
0x2902,
};
GATT_DATA(const uint8_t gattdb_uuidtable_128_map[]) =
{
0x11, 0x9d, 0x9f, 0x42, 0x9c, 0x4f, 0x9f, 0x95, 0x59, 0x45, 0x3d, 0x26, 0xf5, 0x2e, 0xee, 0x18,
0x12, 0x9d, 0x9f, 0x42, 0x9c, 0x4f, 0x9f, 0x95, 0x59, 0x45, 0x3d, 0x26, 0xf5, 0x2e, 0xee, 0x18,
0x04, 0x8f, 0x21, 0x83, 0x8a, 0x74, 0x7d, 0xb8, 0xf2, 0x45, 0x72, 0x87, 0x38, 0x02, 0x63, 0x64,
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_27) = {
.properties = 0x2e,
.max_len = 512,
.len = 1,
.data = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_24) = {
.properties = 0x2e,
.max_len = 247,
.len = 1,
.data = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_22) = {
.properties = 0x0a,
.max_len = 247,
.len = 1,
.data = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_20) = {
.len = 2,
.data = { 0xf6, 0xff, }
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_19) = {
.len = 6,
.data = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, }
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_17) = {
.len = 10,
.data = { 0x42, 0x6c, 0x75, 0x65, 0x20, 0x47, 0x65, 0x63, 0x6b, 0x6f, }
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_15) = {
.len = 12,
.data = { 0x53, 0x69, 0x6c, 0x69, 0x63, 0x6f, 0x6e, 0x20, 0x4c, 0x61, 0x62, 0x73, }
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_13) = {
.len = 2,
.data = { 0x0a, 0x18, }
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_12) = {
.len = 2,
.data = { 0x00, 0x00, }
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_10) = {
.properties = 0x0a,
.max_len = 13,
.data = { 0x45, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, },
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_8) = {
.len = 2,
.data = { 0x00, 0x18, }
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_7) = {
.properties = 0x0a,
.max_len = 1,
.data = { 0x00, },
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_5) = {
.properties = 0x02,
.max_len = 16,
.data = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
};
GATT_DATA(sli_bt_gattdb_attribute_chrvalue_t gattdb_attribute_field_2) = {
.properties = 0x20,
.max_len = 4,
.data = { 0x00, 0x00, 0x00, 0x00, },
};
GATT_DATA(const sli_bt_gattdb_value_t gattdb_attribute_field_0) = {
.len = 2,
.data = { 0x01, 0x18, }
};
GATT_DATA(const sli_bt_gattdb_attribute_t gattdb_attributes_map[]) = {
{ .handle = 0x01, .uuid = 0x0000, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_0 },
{ .handle = 0x02, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x20, .char_uuid = 0x0008 } },
{ .handle = 0x03, .uuid = 0x0008, .permissions = 0x800, .caps = 0xffff, .state = 0x00, .datatype = 0x01, .dynamicdata = &gattdb_attribute_field_2 },
{ .handle = 0x04, .uuid = 0x000b, .permissions = 0x803, .caps = 0xffff, .state = 0x00, .datatype = 0x03, .configdata = { .flags = 0x02, .clientconfig_index = 0x00 } },
{ .handle = 0x05, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x02, .char_uuid = 0x0009 } },
{ .handle = 0x06, .uuid = 0x0009, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x01, .dynamicdata = &gattdb_attribute_field_5 },
{ .handle = 0x07, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x0a, .char_uuid = 0x000a } },
{ .handle = 0x08, .uuid = 0x000a, .permissions = 0x803, .caps = 0xffff, .state = 0x00, .datatype = 0x01, .dynamicdata = &gattdb_attribute_field_7 },
{ .handle = 0x09, .uuid = 0x0000, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_8 },
{ .handle = 0x0a, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x0a, .char_uuid = 0x0003 } },
{ .handle = 0x0b, .uuid = 0x0003, .permissions = 0x803, .caps = 0xffff, .state = 0x00, .datatype = 0x01, .dynamicdata = &gattdb_attribute_field_10 },
{ .handle = 0x0c, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x02, .char_uuid = 0x0004 } },
{ .handle = 0x0d, .uuid = 0x0004, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_12 },
{ .handle = 0x0e, .uuid = 0x0000, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_13 },
{ .handle = 0x0f, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x02, .char_uuid = 0x0005 } },
{ .handle = 0x10, .uuid = 0x0005, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_15 },
{ .handle = 0x11, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x02, .char_uuid = 0x0006 } },
{ .handle = 0x12, .uuid = 0x0006, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_17 },
{ .handle = 0x13, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x02, .char_uuid = 0x0007 } },
{ .handle = 0x14, .uuid = 0x0007, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_19 },
{ .handle = 0x15, .uuid = 0x0000, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x00, .constdata = &gattdb_attribute_field_20 },
{ .handle = 0x16, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x0a, .char_uuid = 0x8000 } },
{ .handle = 0x17, .uuid = 0x8000, .permissions = 0x803, .caps = 0xffff, .state = 0x00, .datatype = 0x02, .dynamicdata = &gattdb_attribute_field_22 },
{ .handle = 0x18, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x2e, .char_uuid = 0x8001 } },
{ .handle = 0x19, .uuid = 0x8001, .permissions = 0x807, .caps = 0xffff, .state = 0x00, .datatype = 0x02, .dynamicdata = &gattdb_attribute_field_24 },
{ .handle = 0x1a, .uuid = 0x000b, .permissions = 0x803, .caps = 0xffff, .state = 0x00, .datatype = 0x03, .configdata = { .flags = 0x02, .clientconfig_index = 0x01 } },
{ .handle = 0x1b, .uuid = 0x0002, .permissions = 0x801, .caps = 0xffff, .state = 0x00, .datatype = 0x05, .characteristic = { .properties = 0x2e, .char_uuid = 0x8002 } },
{ .handle = 0x1c, .uuid = 0x8002, .permissions = 0x807, .caps = 0xffff, .state = 0x00, .datatype = 0x02, .dynamicdata = &gattdb_attribute_field_27 },
{ .handle = 0x1d, .uuid = 0x000b, .permissions = 0x803, .caps = 0xffff, .state = 0x00, .datatype = 0x03, .configdata = { .flags = 0x02, .clientconfig_index = 0x02 } },
};
GATT_HEADER(const sli_bt_gattdb_t gattdb) = {
.attributes = gattdb_attributes_map,
.attribute_table_size = 29,
.attribute_num = 29,
.uuid16 = gattdb_uuidtable_16_map,
.uuid16_table_size = 12,
.uuid16_num = 12,
.uuid128 = gattdb_uuidtable_128_map,
.uuid128_table_size = 3,
.uuid128_num = 3,
.num_ccfg = 3,
.caps_mask = 0xffff,
.enabled_caps = 0xffff,
};
const sli_bt_gattdb_t *static_gattdb = &gattdb;

22
autogen/gatt_db.h Normal file
View File

@@ -0,0 +1,22 @@
/********************************************************************
* Autogenerated file, do not edit.
*******************************************************************/
#ifndef __GATT_DB_H
#define __GATT_DB_H
#include "sli_bt_gattdb_def.h"
extern const sli_bt_gattdb_t gattdb;
#define gattdb_generic_attribute 1
#define gattdb_service_changed_char 3
#define gattdb_database_hash 6
#define gattdb_client_support_features 8
#define gattdb_device_name 11
#define gattdb_CHIPoBLEChar_Rx 23
#define gattdb_CHIPoBLEChar_Tx 25
#define gattdb_CHIPoBLEChar_C3 28
#endif // __GATT_DB_H

2
autogen/gen.properties Normal file
View File

@@ -0,0 +1,2 @@
sdk=simplicity_sdk:2024.12.1
extensions=matter:2.5.1

261
autogen/linkerfile.ld Normal file
View File

@@ -0,0 +1,261 @@
/***************************************************************************//**
* GCC Linker script for Silicon Labs devices
*******************************************************************************
* # License
* <b>Copyright 2020 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
MEMORY
{
FLASH (rx) : ORIGIN = 0x8006000, LENGTH = 0x178000
RAM (rwx) : ORIGIN = 0x20000004, LENGTH = 0x3fffc
BOOTLOADER_RESET_REGION (rwx) : ORIGIN = 0x20000000, LENGTH = 0x4
}
ENTRY(Reset_Handler)
SECTIONS
{
.vectors :
{
linker_vectors_begin = .;
KEEP(*(.vectors))
linker_vectors_end = .;
__Vectors_End = .;
__Vectors_Size = __Vectors_End - __Vectors;
__lma_ramfuncs_start__ = .;
} > FLASH
.bootloader_reset_section (NOLOAD):
{
__ResetReasonStart__ = .;
. = . + 4;
. = ALIGN(4);
__ResetReasonEnd__ = .;
} > BOOTLOADER_RESET_REGION
.stack (NOLOAD):
{
. = ALIGN(8);
__StackLimit = .;
KEEP(*(.stack*))
. = ALIGN(4);
__StackTop = .;
PROVIDE(__stack = __StackTop);
} > RAM
.bss :
{
. = ALIGN(4);
__bss_start__ = .;
*(SORT_BY_ALIGNMENT(.bss*))
*(COMMON)
. = ALIGN(32);
__bss_end__ = .;
} > RAM
.noinit (NOLOAD):
{
*(.noinit*);
. = ALIGN(32);
} > RAM
text_application_ram :
{
. = ALIGN(32);
__vma_ramfuncs_start__ = .;
__text_application_ram_start__ = .;
*(text_application_ram)
. = ALIGN(32);
__vma_ramfuncs_end__ = .;
__text_application_ram_end__ = .;
} > RAM AT > FLASH
.rodata :
{
__lma_ramfuncs_end__ = .;
__rodata_start__ = .;
__rodata_end__ = .;
} > FLASH
.text :
{
linker_code_begin = .;
*(SORT_BY_ALIGNMENT(.text*))
*(SORT_BY_ALIGNMENT(text_*))
. = ALIGN(32);
linker_code_end = .;
KEEP(*(.init))
KEEP(*(.fini))
/* .ctors */
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
*(SORT(.ctors.*))
*(.ctors)
/* .dtors */
*crtbegin.o(.dtors)
*crtbegin?.o(.dtors)
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
*(SORT(.dtors.*))
*(.dtors)
*(.rodata*)
*(.eh_frame*)
} > FLASH
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > FLASH
__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > FLASH
__exidx_end = .;
.copy.table :
{
. = ALIGN(4);
__copy_table_start__ = .;
LONG (__etext)
LONG (__data_start__)
LONG ((__data_end__ - __data_start__) / 4)
/* Add each additional data section here */
/*
LONG (__etext2)
LONG (__data2_start__)
LONG ((__data2_end__ - __data2_start__) / 4)
*/
__copy_table_end__ = .;
} > FLASH
.zero.table :
{
. = ALIGN(4);
__zero_table_start__ = .;
/* Add each additional bss section here */
/*
LONG (__bss2_start__)
LONG ((__bss2_end__ - __bss2_start__) / 4)
*/
__zero_table_end__ = .;
__etext = .;
} > FLASH
.data :
{
. = ALIGN(4);
__data_start__ = .;
*(vtable)
*(SORT_BY_ALIGNMENT(.data*))
. = ALIGN(4);
. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
. = ALIGN(4);
/* All data end */
__data_end__ = .;
} > RAM AT > FLASH
/* Calculate heap size based on RAM limits. */
heap_limit = ORIGIN(RAM) + LENGTH(RAM); /* End of RAM */
heap_size = heap_limit - __HeapBase;
.memory_manager_heap (NOLOAD):
{
. = ALIGN(8);
__HeapBase = .;
. += heap_size;
__end__ = .;
end = __end__;
_end = __end__;
KEEP(*(.memory_manager_heap*))
__HeapLimit = ORIGIN(RAM) + LENGTH(RAM);
} > RAM
__heap_size = __HeapLimit - __HeapBase;
__ram_end__ = 0x20000004 + 0x3fffc;
__main_flash_end__ = 0x8006000 + 0x178000;
/* This is where we handle flash storage blocks. We use dummy sections for finding the configured
* block sizes and then "place" them at the end of flash when the size is known. */
.internal_storage (DSECT) : {
KEEP(*(.internal_storage*))
} > FLASH
.nvm (DSECT) : {
KEEP(*(.simee*))
} > FLASH
__ramfuncs_start__ = __vma_ramfuncs_start__;
__ramfuncs_end__ = __vma_ramfuncs_end__;
linker_nvm_end = __main_flash_end__;
linker_nvm_begin = linker_nvm_end - SIZEOF(.nvm);
linker_storage_end = linker_nvm_begin;
__nvm3Base = linker_nvm_begin;
linker_storage_begin = linker_storage_end - SIZEOF(.internal_storage);
ASSERT((linker_storage_begin >= (__etext + SIZEOF(.data))), "FLASH memory overflowed !")
app_flash_end = 0x8006000 + 0x178000;
ASSERT( (linker_nvm_begin + SIZEOF(.nvm)) <= app_flash_end, "NVM3 is excessing the flash size !")
}

View File

@@ -0,0 +1,41 @@
/***************************************************************************//**
* @file
* @brief Autogenerated configuration file for application properties
*******************************************************************************
* # License
* <b>Copyright 2021 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef SL_APPLICATION_TYPE_H
#define SL_APPLICATION_TYPE_H
#include "api/application_properties.h"
// Bitfield representing type of application
#define APPLICATION_TYPE APPLICATION_TYPE_BLUETOOTH_APP | APPLICATION_TYPE_THREAD
#endif // SL_APPLICATION_TYPE_H

99
autogen/sl_bluetooth.c Normal file
View File

@@ -0,0 +1,99 @@
/***************************************************************************//**
* @file
* @brief Bluetooth initialization and event processing
*******************************************************************************
* # License
* <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from the
* use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software in a
* product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#include <sl_common.h>
#include "sl_bluetooth.h"
#include "sl_assert.h"
#include "sl_bt_stack_init.h"
#include "sl_component_catalog.h"
/**
* Internal stack function to start the Bluetooth stack.
*
* @return SL_STATUS_OK if the stack was successfully started
*/
extern sl_status_t sli_bt_system_start_bluetooth();
void sl_bt_init(void)
{
// Stack initialization could fail, e.g., due to out of memory.
// The failure could not be returned to user as the system initialization
// does not return an error code. Use the EFM_ASSERT to catch the failure,
// which requires either DEBUG_EFM or DEBUG_EFM_USER is defined.
sl_status_t err = sl_bt_stack_init();
EFM_ASSERT(err == SL_STATUS_OK);
// When neither Bluetooth on-demand start feature nor an RTOS is present, the
// Bluetooth stack is always started already at init-time.
#if !defined(SL_CATALOG_BLUETOOTH_ON_DEMAND_START_PRESENT) && !defined(SL_CATALOG_KERNEL_PRESENT)
err = sli_bt_system_start_bluetooth();
EFM_ASSERT(err == SL_STATUS_OK);
#endif
}
SL_WEAK void sl_bt_on_event(sl_bt_msg_t* evt)
{
(void)(evt);
}
void sl_bt_process_event(sl_bt_msg_t *evt)
{
sl_bt_on_event(evt);
}
#if !defined(SL_CATALOG_KERNEL_PRESENT)
// When running in an RTOS, the stack events are processed in a dedicated
// event processing task, and these functions are not used at all.
SL_WEAK bool sl_bt_can_process_event(uint32_t len)
{
(void)(len);
return true;
}
void sl_bt_step(void)
{
sl_bt_msg_t evt;
sl_bt_run();
uint32_t event_len = sl_bt_event_pending_len();
// For preventing from data loss, the event will be kept in the stack's queue
// if application cannot process it at the moment.
if ((event_len == 0) || (!sl_bt_can_process_event(event_len))) {
return;
}
// Pop (non-blocking) a Bluetooth stack event from event queue.
sl_status_t status = sl_bt_pop_event(&evt);
if(status != SL_STATUS_OK){
return;
}
sl_bt_process_event(&evt);
}
#endif // !defined(SL_CATALOG_KERNEL_PRESENT)

72
autogen/sl_bluetooth.h Normal file
View File

@@ -0,0 +1,72 @@
/***************************************************************************//**
* @file
* @brief Bluetooth initialization and event processing
*******************************************************************************
* # License
* <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from the
* use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software in a
* product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef BLUETOOTH_H
#define BLUETOOTH_H
#include <stdbool.h>
#include "sl_power_manager.h"
#include "sl_bluetooth_config.h"
#include "sl_bt_api.h"
#define SL_BT_COMPONENT_ADVERTISERS 0
#define SL_BT_COMPONENT_CONNECTIONS 0
// Initialize Bluetooth core functionality
void sl_bt_init(void);
// Polls bluetooth stack for an event and processes it
void sl_bt_step(void);
/**
* Tell if the application can process a new Bluetooth event in its current
* state, for example, based on resource availability status.
* If true is returned by this function, sl_bt_process_event will be called
* for event processing. Otherwise, the event will be kept in stack's event
* queue until the application can process it.
*
* @note Default implementation of this function returns true.
* Application can override it for own business logic.
*
* @param len Data length of the event
* @return ture if event can be processed; false otherwise
*/
bool sl_bt_can_process_event(uint32_t len);
// Processes a single bluetooth event
void sl_bt_process_event(sl_bt_msg_t *evt);
void sl_bt_on_event(sl_bt_msg_t* evt);
// Power Manager related functions
bool sli_bt_is_ok_to_sleep(void);
sl_power_manager_on_isr_exit_t sli_bt_sleep_on_isr_exit(void);
#endif // BLUETOOTH_H

View File

@@ -0,0 +1,34 @@
/***************************************************************************//**
* @file
* @brief Board Default Init
*******************************************************************************
* # License
* <b>Copyright 2020 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#include "sl_board_control.h"
void sl_board_default_init(void)
{
}

View File

@@ -2,103 +2,103 @@
#include "em_chip.h"
#include "sl_interrupt_manager.h"
//#include "sl_board_init.h"
#include "sl_board_init.h"
#include "sl_clock_manager_init.h"
#include "sl_device_init_dcdc.h"
#include "sl_clock_manager.h"
#include "sl_hfxo_manager.h"
//#include "pa_conversions_efr32.h"
//#include "sl_rail_util_power_manager_init.h"
//#include "sl_rail_util_pti.h"
//#include "sl_rail_util_rssi.h"
//#include "btl_interface.h"
//#include "sl_board_control.h"
//#include "sl_bt_rtos_adaptation.h"
//#include "platform-efr32.h"
#include "pa_conversions_efr32.h"
#include "sl_rail_util_power_manager_init.h"
#include "sl_rail_util_pti.h"
#include "sl_rail_util_rssi.h"
#include "btl_interface.h"
#include "sl_board_control.h"
#include "sl_bt_rtos_adaptation.h"
#include "platform-efr32.h"
#include "sl_sleeptimer.h"
#include "sl_mpu.h"
#include "sl_gpio.h"
//#include "gpiointerrupt.h"
//#include "sl_iostream_rtt.h"
//#include "sl_mbedtls.h"
//#include "sl_ot_rtos_adaptation.h"
//#include "sl_simple_button_instances.h"
//#include "sl_simple_led_instances.h"
//#include "sl_uartdrv_instances.h"
//#include "psa/crypto.h"
//#include "sl_se_manager.h"
//#include "sli_protocol_crypto.h"
#include "gpiointerrupt.h"
#include "sl_iostream_rtt.h"
#include "sl_mbedtls.h"
#include "sl_ot_rtos_adaptation.h"
#include "sl_simple_button_instances.h"
#include "sl_simple_led_instances.h"
#include "sl_uartdrv_instances.h"
#include "psa/crypto.h"
#include "sl_se_manager.h"
#include "sli_protocol_crypto.h"
#include "cmsis_os2.h"
//#include "sl_iostream_init_instances.h"
//#include "sl_bluetooth.h"
//#include "nvm3_default.h"
//#include "sl_iostream_handles.h"
#include "sl_iostream_init_instances.h"
#include "sl_bluetooth.h"
#include "nvm3_default.h"
#include "sl_iostream_handles.h"
#include "sl_power_manager.h"
void sl_platform_init(void)
{
CHIP_Init();
sl_interrupt_manager_init();
//sl_board_preinit();
sl_board_preinit();
sl_clock_manager_init();
sl_device_init_dcdc();
sl_clock_manager_runtime_init();
sl_hfxo_manager_init_hardware();
//sl_board_init();
//bootloader_init();
sl_board_init();
bootloader_init();
osKernelInitialize();
//nvm3_initDefault();
nvm3_initDefault();
sl_power_manager_init();
}
void sl_kernel_start(void)
{
//sli_bt_rtos_adaptation_kernel_start();
sli_bt_rtos_adaptation_kernel_start();
osKernelStart();
}
void sl_driver_init(void)
{
//sl_gpio_init();
//GPIOINT_Init();
//sl_simple_button_init_instances();
//sl_simple_led_init_instances();
//sl_uartdrv_init_instances();
sl_gpio_init();
GPIOINT_Init();
sl_simple_button_init_instances();
sl_simple_led_init_instances();
sl_uartdrv_init_instances();
}
void sl_service_init(void)
{
//sl_board_configure_vcom();
//sl_sleeptimer_init();
//sl_hfxo_manager_init();
//sl_mpu_disable_execute_from_ram();
//sl_mbedtls_init();
//psa_crypto_init();
//sl_se_init();
//sli_protocol_crypto_init();
//sli_aes_seed_mask();
sl_board_configure_vcom();
sl_sleeptimer_init();
sl_hfxo_manager_init();
sl_mpu_disable_execute_from_ram();
sl_mbedtls_init();
psa_crypto_init();
sl_se_init();
sli_protocol_crypto_init();
sli_aes_seed_mask();
sl_iostream_init_instances();
}
void sl_stack_init(void)
{
//sl_rail_util_pa_init();
//sl_rail_util_power_manager_init();
//sl_rail_util_pti_init();
//sl_rail_util_rssi_init();
//sl_bt_rtos_init();
//sl_ot_sys_init();
sl_rail_util_pa_init();
sl_rail_util_power_manager_init();
sl_rail_util_pti_init();
sl_rail_util_rssi_init();
sl_bt_rtos_init();
sl_ot_sys_init();
}
void sl_internal_app_init(void)
{
//sl_ot_rtos_stack_init();
//sl_ot_rtos_app_init();
sl_ot_rtos_stack_init();
sl_ot_rtos_app_init();
}
void sl_iostream_init_instances(void)
{
//sl_iostream_rtt_init();
//sl_iostream_set_console_instance();
sl_iostream_rtt_init();
sl_iostream_set_console_instance();
}

View File

@@ -0,0 +1,61 @@
#include "sl_iostream.h"
#include "sl_iostream_handles.h"
#include "string.h"
const sl_iostream_instance_info_t *sl_iostream_instances_info[] = {
&sl_iostream_instance_rtt_info,
};
const uint32_t sl_iostream_instances_count = sizeof(sl_iostream_instances_info) / sizeof(sl_iostream_instances_info[0]);
sl_iostream_t *sl_iostream_recommended_console_stream = NULL;
/***************************************************************************//**
* Get iostream instance handle for a given name
*
* @return Instance handle if it exist, NULL otherwise.
******************************************************************************/
sl_iostream_t *sl_iostream_get_handle(char *name)
{
for (uint32_t i = 0; i < sl_iostream_instances_count; i++) {
if (strcmp(sl_iostream_instances_info[i]->name, name) == 0) {
return sl_iostream_instances_info[i]->handle;
}
}
return NULL;
}
/***************************************************************************//**
* Set iostream recommended instance for a console
******************************************************************************/
void sl_iostream_set_console_instance(void)
{
sl_iostream_type_t console = SL_IOSTREAM_TYPE_UNDEFINED;
for (uint32_t i = 0; i < sl_iostream_instances_count; i++) {
switch (sl_iostream_instances_info[i]->type) {
case SL_IOSTREAM_TYPE_UART:
case SL_IOSTREAM_TYPE_RTT:
if (console != SL_IOSTREAM_TYPE_UART) {
console = sl_iostream_instances_info[i]->type;
sl_iostream_recommended_console_stream = sl_iostream_instances_info[i]->handle;
}
break;
case SL_IOSTREAM_TYPE_VUART:
if (console != SL_IOSTREAM_TYPE_UART && console != SL_IOSTREAM_TYPE_RTT) {
console = sl_iostream_instances_info[i]->type;
sl_iostream_recommended_console_stream = sl_iostream_instances_info[i]->handle;
}
break;
case SL_IOSTREAM_TYPE_LOOPBACK:
default:
// Ignore loopback interface
break;
}
}
}

View File

@@ -0,0 +1,24 @@
#ifndef SL_IOSTREAM_HANDLES_H
#define SL_IOSTREAM_HANDLES_H
#include "sl_iostream.h"
#include "sl_iostream_rtt.h"
#ifdef __cplusplus
extern "C" {
#endif
extern const sl_iostream_instance_info_t *sl_iostream_instances_info[];
extern const uint32_t sl_iostream_instances_count;
extern sl_iostream_t *sl_iostream_recommended_console_stream;
sl_iostream_t *sl_iostream_get_handle(char *name);
void sl_iostream_set_console_instance(void);
#ifdef __cplusplus
}
#endif
#endif // SL_IOSTREAM_HANDLES_H

View File

@@ -0,0 +1,16 @@
#ifndef SL_IOSTREAM_INIT_INSTANCES_H
#define SL_IOSTREAM_INIT_INSTANCES_H
#include "sl_iostream.h"
#ifdef __cplusplus
extern "C" {
#endif
// Initialize iostream component(s) / instance(s)
void sl_iostream_init_instances(void);
#ifdef __cplusplus
}
#endif
#endif // SL_IOSTREAM_INIT_INSTANCES_H

View File

@@ -0,0 +1,64 @@
/*******************************************************************************
* @file
* @brief Custom CLI support for OpenThread
*******************************************************************************
* # License
* <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#include <openthread/cli.h>
#include <common/code_utils.hpp>
#include <string.h>
#include "sl_ot_custom_cli.h"
/*******************************************************************************
* Example syntax (.slcc or .slcp) for populating this file:
*
* template_contribution:
* - name: sl_ot_cli_command # Register a command
* value:
* name: status # Name of command
* handler: status_command # Function to be called. Must be defined
*
******************************************************************************/
extern otError bleCommand(void *aContext, uint8_t aArgsLength, char *aArgs[]);
otCliCommand sl_ot_custom_commands[] = {
#ifdef SL_OPENTHREAD_BLE_CLI_ENABLE
{"ble", bleCommand},
#endif
};
// This is needed because `sizeof` is calculated at compile time and can't be calculated outside of this source file.
const uint8_t sl_ot_custom_commands_count = OT_ARRAY_LENGTH(sl_ot_custom_commands);
void sl_ot_custom_cli_init(void)
{
if (sl_ot_custom_commands_count > 0)
{
IgnoreError(otCliSetUserCommands(sl_ot_custom_commands, sl_ot_custom_commands_count, NULL));
}
}

39
autogen/sl_ot_init.c Normal file
View File

@@ -0,0 +1,39 @@
/*******************************************************************************
* @file
* @brief OpenThread initialization.
*******************************************************************************
* # License
* <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#include "sl_ot_init.h"
void sl_ot_init(void)
{
sl_ot_create_instance();
sl_ot_sleep_init();
sl_ot_cli_init();
sl_ot_custom_cli_init();
}

41
autogen/sl_ot_init.h Normal file
View File

@@ -0,0 +1,41 @@
/*******************************************************************************
* @file
* @brief This generated header includes declaration of all functions required
* during initialization that must be defined by the OpenThread application.
*******************************************************************************
* # License
* <b>Copyright 2024 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef SL_OT_INIT_H
#define SL_OT_INIT_H
void sl_ot_init(void);
extern void sl_ot_create_instance(void);
extern void sl_ot_sleep_init(void);
extern void sl_ot_cli_init(void);
extern void sl_ot_custom_cli_init(void);
#endif // SL_OT_INIT_H

View File

@@ -0,0 +1,86 @@
/***************************************************************************//**
* @file
* @brief Simple Button Driver Instances
*******************************************************************************
* # License
* <b>Copyright 2019 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#include "sl_simple_button.h"
#include "sl_simple_button_btn0_config.h"
#include "sl_simple_button_btn1_config.h"
sl_simple_button_context_t simple_btn0_context = {
.state = 0,
.history = 0,
.port = SL_SIMPLE_BUTTON_BTN0_PORT,
.pin = SL_SIMPLE_BUTTON_BTN0_PIN,
.mode = SL_SIMPLE_BUTTON_BTN0_MODE,
};
const sl_button_t sl_button_btn0 = {
.context = &simple_btn0_context,
.init = sl_simple_button_init,
.get_state = sl_simple_button_get_state,
.poll = sl_simple_button_poll_step,
.enable = sl_simple_button_enable,
.disable = sl_simple_button_disable,
};
sl_simple_button_context_t simple_btn1_context = {
.state = 0,
.history = 0,
.port = SL_SIMPLE_BUTTON_BTN1_PORT,
.pin = SL_SIMPLE_BUTTON_BTN1_PIN,
.mode = SL_SIMPLE_BUTTON_BTN1_MODE,
};
const sl_button_t sl_button_btn1 = {
.context = &simple_btn1_context,
.init = sl_simple_button_init,
.get_state = sl_simple_button_get_state,
.poll = sl_simple_button_poll_step,
.enable = sl_simple_button_enable,
.disable = sl_simple_button_disable,
};
// the table of buttons and button count are generated as a
// convenience for the application
const sl_button_t *sl_simple_button_array[] = {
&sl_button_btn0,
&sl_button_btn1
};
const uint8_t simple_button_count = 2;
void sl_simple_button_init_instances(void)
{
sl_button_init(&sl_button_btn0);
sl_button_init(&sl_button_btn1);
}
void sl_simple_button_poll_instances(void)
{
sl_button_poll_step(&sl_button_btn0);
sl_button_poll_step(&sl_button_btn1);
}

View File

@@ -0,0 +1,47 @@
/***************************************************************************//**
* @file
* @brief Simple Button Driver Instances
*******************************************************************************
* # License
* <b>Copyright 2019 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef SL_SIMPLE_BUTTON_INSTANCES_H
#define SL_SIMPLE_BUTTON_INSTANCES_H
#include "sl_simple_button.h"
extern const sl_button_t sl_button_btn0;
extern const sl_button_t sl_button_btn1;
extern const sl_button_t *sl_simple_button_array[];
#define SL_SIMPLE_BUTTON_COUNT 2
#define SL_SIMPLE_BUTTON_INSTANCE(n) (sl_simple_button_array[n])
void sl_simple_button_init_instances(void);
void sl_simple_button_poll_instances(void);
#endif // SL_SIMPLE_BUTTON_INSTANCES_H

View File

@@ -0,0 +1,92 @@
/***************************************************************************//**
* @file
* @brief LED Driver Instances
*******************************************************************************
* # License
* <b>Copyright 2019 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#include "sl_simple_led.h"
#include "sl_gpio.h"
#include "sl_simple_led_led0_config.h"
#include "sl_simple_led_led1_config.h"
#include "sl_simple_led_led2_config.h"
sl_simple_led_context_t simple_led0_context = {
.port = SL_SIMPLE_LED_LED0_PORT,
.pin = SL_SIMPLE_LED_LED0_PIN,
.polarity = SL_SIMPLE_LED_LED0_POLARITY,
};
const sl_led_t sl_led_led0 = {
.context = &simple_led0_context,
.init = sl_simple_led_init,
.turn_on = sl_simple_led_turn_on,
.turn_off = sl_simple_led_turn_off,
.toggle = sl_simple_led_toggle,
.get_state = sl_simple_led_get_state,
};
sl_simple_led_context_t simple_led1_context = {
.port = SL_SIMPLE_LED_LED1_PORT,
.pin = SL_SIMPLE_LED_LED1_PIN,
.polarity = SL_SIMPLE_LED_LED1_POLARITY,
};
const sl_led_t sl_led_led1 = {
.context = &simple_led1_context,
.init = sl_simple_led_init,
.turn_on = sl_simple_led_turn_on,
.turn_off = sl_simple_led_turn_off,
.toggle = sl_simple_led_toggle,
.get_state = sl_simple_led_get_state,
};
sl_simple_led_context_t simple_led2_context = {
.port = SL_SIMPLE_LED_LED2_PORT,
.pin = SL_SIMPLE_LED_LED2_PIN,
.polarity = SL_SIMPLE_LED_LED2_POLARITY,
};
const sl_led_t sl_led_led2 = {
.context = &simple_led2_context,
.init = sl_simple_led_init,
.turn_on = sl_simple_led_turn_on,
.turn_off = sl_simple_led_turn_off,
.toggle = sl_simple_led_toggle,
.get_state = sl_simple_led_get_state,
};
const sl_led_t *sl_simple_led_array[] = {
&sl_led_led0,
&sl_led_led1,
&sl_led_led2
};
void sl_simple_led_init_instances(void)
{
sl_led_init(&sl_led_led0);
sl_led_init(&sl_led_led1);
sl_led_init(&sl_led_led2);
}

View File

@@ -0,0 +1,47 @@
/***************************************************************************//**
* @file
* @brief LED Driver Instances
*******************************************************************************
* # License
* <b>Copyright 2019 Silicon Laboratories Inc. www.silabs.com</b>
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef SL_SIMPLE_LED_INSTANCES_H
#define SL_SIMPLE_LED_INSTANCES_H
#include "sl_simple_led.h"
extern const sl_led_t sl_led_led0;
extern const sl_led_t sl_led_led1;
extern const sl_led_t sl_led_led2;
extern const sl_led_t *sl_simple_led_array[];
#define SL_SIMPLE_LED_COUNT 3
#define SL_SIMPLE_LED_INSTANCE(n) (sl_simple_led_array[n])
void sl_simple_led_init_instances(void);
#endif // SL_SIMPLE_LED_INIT_H

74
autogen/sl_uartdrv_init.c Normal file
View File

@@ -0,0 +1,74 @@
#include "uartdrv.h"
#include "sl_uartdrv_instances.h"
#include <stddef.h>
#include "sl_uartdrv_eusart_vcom_config.h"
UARTDRV_HandleData_t sl_uartdrv_eusart_vcom_handle_data;
UARTDRV_Handle_t sl_uartdrv_eusart_vcom_handle = &sl_uartdrv_eusart_vcom_handle_data;
static UARTDRV_Handle_t sli_uartdrv_default_handle = NULL;
/* If CTS and RTS not defined, define a default value to avoid errors */
#ifndef SL_UARTDRV_EUSART_VCOM_CTS_PORT
#define SL_UARTDRV_EUSART_VCOM_CTS_PORT SL_GPIO_PORT_A
#define SL_UARTDRV_EUSART_VCOM_CTS_PIN 0
#endif
#ifndef SL_UARTDRV_EUSART_VCOM_RTS_PORT
#define SL_UARTDRV_EUSART_VCOM_RTS_PORT SL_GPIO_PORT_A
#define SL_UARTDRV_EUSART_VCOM_RTS_PIN 0
#endif
/* Define RX and TX buffer queues */
DEFINE_BUF_QUEUE(SL_UARTDRV_EUSART_VCOM_RX_BUFFER_SIZE, sl_uartdrv_eusart_vcom_rx_buffer);
DEFINE_BUF_QUEUE(SL_UARTDRV_EUSART_VCOM_TX_BUFFER_SIZE, sl_uartdrv_eusart_vcom_tx_buffer);
/* Create uartdrv initialization structs */
UARTDRV_InitEuart_t sl_uartdrv_eusart_init_vcom = {
.port = SL_UARTDRV_EUSART_VCOM_PERIPHERAL,
.useLowFrequencyMode = SL_UARTDRV_EUSART_VCOM_LF_MODE,
.baudRate = SL_UARTDRV_EUSART_VCOM_BAUDRATE,
.txPort = SL_UARTDRV_EUSART_VCOM_TX_PORT,
.rxPort = SL_UARTDRV_EUSART_VCOM_RX_PORT,
.txPin = SL_UARTDRV_EUSART_VCOM_TX_PIN,
.rxPin = SL_UARTDRV_EUSART_VCOM_RX_PIN,
.uartNum = SL_UARTDRV_EUSART_VCOM_PERIPHERAL_NO,
.stopBits = SL_UARTDRV_EUSART_VCOM_STOP_BITS,
.parity = SL_UARTDRV_EUSART_VCOM_PARITY,
.oversampling = SL_UARTDRV_EUSART_VCOM_OVERSAMPLING,
.mvdis = SL_UARTDRV_EUSART_VCOM_MVDIS,
.fcType = SL_UARTDRV_EUSART_VCOM_FLOW_CONTROL_TYPE,
.ctsPort = SL_UARTDRV_EUSART_VCOM_CTS_PORT,
.ctsPin = SL_UARTDRV_EUSART_VCOM_CTS_PIN,
.rtsPort = SL_UARTDRV_EUSART_VCOM_RTS_PORT,
.rtsPin = SL_UARTDRV_EUSART_VCOM_RTS_PIN,
.rxQueue = (UARTDRV_Buffer_FifoQueue_t *)&sl_uartdrv_eusart_vcom_rx_buffer,
.txQueue = (UARTDRV_Buffer_FifoQueue_t *)&sl_uartdrv_eusart_vcom_tx_buffer,
};
void sl_uartdrv_init_instances(void){
UARTDRV_InitEuart(sl_uartdrv_eusart_vcom_handle, &sl_uartdrv_eusart_init_vcom);
sl_uartdrv_set_default(sl_uartdrv_eusart_vcom_handle);
}
sl_status_t sl_uartdrv_set_default(UARTDRV_Handle_t handle)
{
sl_status_t status = SL_STATUS_INVALID_HANDLE;
if (handle != NULL) {
sli_uartdrv_default_handle = handle;
status = SL_STATUS_OK;
}
return status;
}
UARTDRV_Handle_t sl_uartdrv_get_default(void)
{
return sli_uartdrv_default_handle;
}

View File

@@ -0,0 +1,36 @@
#ifndef SL_UARTDRV_INSTANCES_H
#define SL_UARTDRV_INSTANCES_H
#ifdef __cplusplus
extern "C" {
#endif
#include "sl_status.h"
#include "uartdrv.h"
extern UARTDRV_Handle_t sl_uartdrv_eusart_vcom_handle;
void sl_uartdrv_init_instances(void);
/***************************************************************************//**
* Set the handle as the default UARTDRV handle.
*
* @param[in] handle UARTDRV handle to set as default.
*
* @return Status result
******************************************************************************/
sl_status_t sl_uartdrv_set_default(UARTDRV_Handle_t handle);
/***************************************************************************//**
* Get the default UARTDRV handle configured.
*
* @return UARTDRV handle
******************************************************************************/
UARTDRV_Handle_t sl_uartdrv_get_default(void);
#ifdef __cplusplus
}
#endif
#endif // SL_UARTDRV_INSTANCES_H

View File

@@ -0,0 +1,63 @@
// This is an autogenerated config file, any changes to this file will be overwritten
#ifndef SLI_MBEDTLS_CONFIG_AUTOGEN_H
#define SLI_MBEDTLS_CONFIG_AUTOGEN_H
#define MBEDTLS_MPI_MAX_SIZE 32
#define MBEDTLS_MPI_WINDOW_SIZE 1
#define MBEDTLS_AES_C
#define MBEDTLS_ASN1_PARSE_C
#define MBEDTLS_ASN1_WRITE_C
#define MBEDTLS_BASE64_C
#define MBEDTLS_CIPHER_C
#define MBEDTLS_CMAC_C
#define MBEDTLS_ECP_C
#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
#define MBEDTLS_ECDSA_C
#define MBEDTLS_ECDSA_DETERMINISTIC
#define MBEDTLS_HMAC_DRBG_C
#define MBEDTLS_ENTROPY_HARDWARE_ALT
#define MBEDTLS_ENTROPY_RAIL_PRESENT
#define MBEDTLS_MD_C
#define MBEDTLS_BIGNUM_C
#define MBEDTLS_OID_C
#define MBEDTLS_PEM_PARSE_C
#define MBEDTLS_PEM_WRITE_C
#define MBEDTLS_PK_C
#define MBEDTLS_PK_PARSE_C
#define MBEDTLS_PK_WRITE_C
#define MBEDTLS_PLATFORM_C
#define MBEDTLS_PLATFORM_MEMORY
#define MBEDTLS_ENTROPY_C
#define MBEDTLS_ENTROPY_FORCE_SHA256
#define MBEDTLS_ENTROPY_MAX_SOURCES 2
#define MBEDTLS_NO_PLATFORM_ENTROPY
#define MBEDTLS_CTR_DRBG_C
#define MBEDTLS_SHA256_C
#define MBEDTLS_SHA224_C
#define MBEDTLS_THREADING_C
#define MBEDTLS_THREADING_ALT
#define MBEDTLS_X509_USE_C
#define MBEDTLS_X509_CREATE_C
#define MBEDTLS_X509_CRT_PARSE_C
#define MBEDTLS_X509_CRT_WRITE_C
#define MBEDTLS_X509_CRL_PARSE_C
#define MBEDTLS_X509_CSR_PARSE_C
#define MBEDTLS_X509_CSR_WRITE_C
#define MBEDTLS_USE_PSA_CRYPTO
#define MBEDTLS_PSA_CRYPTO_C
#define MBEDTLS_PSA_CRYPTO_CONFIG
#define MBEDTLS_PSA_CRYPTO_DRIVERS
#define MBEDTLS_PSA_CRYPTO_STORAGE_C
#endif // SLI_MBEDTLS_CONFIG_AUTOGEN_H

View File

@@ -0,0 +1,57 @@
// This is an autogenerated config file, any changes to this file will be overwritten
#ifndef SLI_MBEDTLS_CONFIG_TRANSFORM_AUTOGEN_H
#define SLI_MBEDTLS_CONFIG_TRANSFORM_AUTOGEN_H
// Convert CMSIS Markup config defines to mbedTLS specific config defines
#if SL_MBEDTLS_RSA_NO_CRT
#define MBEDTLS_RSA_NO_CRT
#endif
// Allow undefining the specified cipher suites
#if defined(SLI_MBEDTLS_AUTODETECT_CIPHERSUITES)
#undef MBEDTLS_SSL_CIPHERSUITES
#endif
#if SL_MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
#endif
#if SL_MBEDTLS_SSL_EXPORT_KEYS
#define MBEDTLS_SSL_EXPORT_KEYS
#endif
#if SL_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
#endif
#if SL_MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
#endif
#if SL_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
#endif
#if SL_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
#endif
#if SL_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
#endif
#if SL_MBEDTLS_ECP_ENABLE_COMPRESSED_CURVE_PARSING
#define MBEDTLS_ECP_ENABLE_COMPRESSED_CURVE_PARSING
#endif
#if SL_MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
#define MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
#endif
#if !defined(MBEDTLS_SSL_IN_CONTENT_LEN)
#define MBEDTLS_SSL_IN_CONTENT_LEN SL_MBEDTLS_SSL_IN_CONTENT_LEN
#endif
#if !defined(MBEDTLS_SSL_OUT_CONTENT_LEN)
#define MBEDTLS_SSL_OUT_CONTENT_LEN SL_MBEDTLS_SSL_OUT_CONTENT_LEN
#endif
#endif // SLI_MBEDTLS_CONFIG_TRANSFORM_AUTOGEN_H

View File

@@ -0,0 +1,23 @@
// This is an autogenerated config file, any changes to this file will be overwritten
#ifndef SLI_PSA_BUILTIN_CONFIG_AUTOGEN_H
#define SLI_PSA_BUILTIN_CONFIG_AUTOGEN_H
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
#define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
#define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
#define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_AES_CMAC_PRF_128 1
#define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
#define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
#endif // SLI_PSA_BUILTIN_CONFIG_AUTOGEN_H

View File

@@ -0,0 +1,37 @@
// This is an autogenerated config file, any changes to this file will be overwritten
#ifndef SLI_PSA_CONFIG_AUTOGEN_H
#define SLI_PSA_CONFIG_AUTOGEN_H
#define PSA_WANT_KEY_TYPE_AES 1
#define PSA_WANT_ALG_CCM 1
#define PSA_WANT_ALG_CMAC 1
#define PSA_WANT_ALG_SHA_224 1
#define PSA_WANT_ALG_SHA_256 1
#define PSA_WANT_ALG_ECB_NO_PADDING 1
#define PSA_WANT_ALG_ECDSA 1
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
#define PSA_WANT_ECC_SECP_R1_192 1
#define PSA_WANT_ECC_SECP_R1_224 1
#define PSA_WANT_ECC_SECP_R1_256 1
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
#define PSA_WANT_ALG_ECDH 1
#define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
#define PSA_WANT_ALG_HKDF 1
#define PSA_WANT_ALG_HMAC 1
#define PSA_WANT_KEY_TYPE_HMAC 1
#define PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 1
#define PSA_WANT_ALG_TLS12_PRF 1
#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
#define MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
#define MBEDTLS_PSA_KEY_SLOT_COUNT (22 + 15 + 1 + SL_PSA_KEY_USER_SLOT_COUNT + 1)
#ifndef SL_PSA_ITS_MAX_FILES
#define SL_PSA_ITS_MAX_FILES (1 + SL_PSA_ITS_USER_MAX_FILES)
#endif
#endif // SLI_PSA_CONFIG_AUTOGEN_H

View File

@@ -0,0 +1,862 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
#include <cstdint>
#include <cinttypes>
#include <app-common/zap-generated/callback.h>
#include <app-common/zap-generated/cluster-objects.h>
#include <app-common/zap-generated/ids/Clusters.h>
#include <app-common/zap-generated/ids/Commands.h>
#include <app/util/util.h>
#include <app/CommandHandler.h>
#include <app/InteractionModelEngine.h>
#include <lib/core/CHIPSafeCasts.h>
#include <lib/support/TypeTraits.h>
namespace chip {
namespace app {
// Cluster specific command parsing
namespace Clusters {
namespace AdministratorCommissioning {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::OpenCommissioningWindow::Id: {
Commands::OpenCommissioningWindow::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfAdministratorCommissioningClusterOpenCommissioningWindowCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::OpenBasicCommissioningWindow::Id: {
Commands::OpenBasicCommissioningWindow::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::RevokeCommissioning::Id: {
Commands::RevokeCommissioning::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfAdministratorCommissioningClusterRevokeCommissioningCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace GeneralCommissioning {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::ArmFailSafe::Id: {
Commands::ArmFailSafe::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGeneralCommissioningClusterArmFailSafeCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::SetRegulatoryConfig::Id: {
Commands::SetRegulatoryConfig::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGeneralCommissioningClusterSetRegulatoryConfigCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::CommissioningComplete::Id: {
Commands::CommissioningComplete::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGeneralCommissioningClusterCommissioningCompleteCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace GeneralDiagnostics {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::TestEventTrigger::Id: {
Commands::TestEventTrigger::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGeneralDiagnosticsClusterTestEventTriggerCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::TimeSnapshot::Id: {
Commands::TimeSnapshot::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGeneralDiagnosticsClusterTimeSnapshotCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace GroupKeyManagement {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::KeySetWrite::Id: {
Commands::KeySetWrite::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupKeyManagementClusterKeySetWriteCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::KeySetRead::Id: {
Commands::KeySetRead::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupKeyManagementClusterKeySetReadCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::KeySetRemove::Id: {
Commands::KeySetRemove::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupKeyManagementClusterKeySetRemoveCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::KeySetReadAllIndices::Id: {
Commands::KeySetReadAllIndices::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupKeyManagementClusterKeySetReadAllIndicesCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace Groups {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::AddGroup::Id: {
Commands::AddGroup::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupsClusterAddGroupCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::ViewGroup::Id: {
Commands::ViewGroup::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupsClusterViewGroupCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::GetGroupMembership::Id: {
Commands::GetGroupMembership::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupsClusterGetGroupMembershipCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::RemoveGroup::Id: {
Commands::RemoveGroup::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupsClusterRemoveGroupCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::RemoveAllGroups::Id: {
Commands::RemoveAllGroups::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupsClusterRemoveAllGroupsCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::AddGroupIfIdentifying::Id: {
Commands::AddGroupIfIdentifying::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfGroupsClusterAddGroupIfIdentifyingCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace Identify {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::Identify::Id: {
Commands::Identify::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfIdentifyClusterIdentifyCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::TriggerEffect::Id: {
Commands::TriggerEffect::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfIdentifyClusterTriggerEffectCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace LevelControl {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::MoveToLevel::Id: {
Commands::MoveToLevel::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterMoveToLevelCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::Move::Id: {
Commands::Move::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterMoveCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::Step::Id: {
Commands::Step::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterStepCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::Stop::Id: {
Commands::Stop::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterStopCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::MoveToLevelWithOnOff::Id: {
Commands::MoveToLevelWithOnOff::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterMoveToLevelWithOnOffCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::MoveWithOnOff::Id: {
Commands::MoveWithOnOff::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterMoveWithOnOffCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::StepWithOnOff::Id: {
Commands::StepWithOnOff::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterStepWithOnOffCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::StopWithOnOff::Id: {
Commands::StopWithOnOff::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfLevelControlClusterStopWithOnOffCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace OtaSoftwareUpdateRequestor {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::AnnounceOTAProvider::Id: {
Commands::AnnounceOTAProvider::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOtaSoftwareUpdateRequestorClusterAnnounceOTAProviderCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace OnOff {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::Off::Id: {
Commands::Off::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOnOffClusterOffCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::On::Id: {
Commands::On::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOnOffClusterOnCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::Toggle::Id: {
Commands::Toggle::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOnOffClusterToggleCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::OffWithEffect::Id: {
Commands::OffWithEffect::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOnOffClusterOffWithEffectCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::OnWithRecallGlobalScene::Id: {
Commands::OnWithRecallGlobalScene::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOnOffClusterOnWithRecallGlobalSceneCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::OnWithTimedOff::Id: {
Commands::OnWithTimedOff::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOnOffClusterOnWithTimedOffCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace OperationalCredentials {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::AttestationRequest::Id: {
Commands::AttestationRequest::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterAttestationRequestCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::CertificateChainRequest::Id: {
Commands::CertificateChainRequest::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterCertificateChainRequestCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::CSRRequest::Id: {
Commands::CSRRequest::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterCSRRequestCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::AddNOC::Id: {
Commands::AddNOC::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterAddNOCCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::UpdateNOC::Id: {
Commands::UpdateNOC::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterUpdateNOCCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::UpdateFabricLabel::Id: {
Commands::UpdateFabricLabel::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterUpdateFabricLabelCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::RemoveFabric::Id: {
Commands::RemoveFabric::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterRemoveFabricCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
case Commands::AddTrustedRootCertificate::Id: {
Commands::AddTrustedRootCertificate::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfOperationalCredentialsClusterAddTrustedRootCertificateCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace SoftwareDiagnostics {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::ResetWatermarks::Id: {
Commands::ResetWatermarks::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfSoftwareDiagnosticsClusterResetWatermarksCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace ThreadNetworkDiagnostics {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::ResetCounts::Id: {
Commands::ResetCounts::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfThreadNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
namespace WiFiNetworkDiagnostics {
void DispatchServerCommand(CommandHandler * apCommandObj, const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aDataTlv)
{
CHIP_ERROR TLVError = CHIP_NO_ERROR;
bool wasHandled = false;
{
switch (aCommandPath.mCommandId)
{
case Commands::ResetCounts::Id: {
Commands::ResetCounts::DecodableType commandData;
TLVError = DataModel::Decode(aDataTlv, commandData);
if (TLVError == CHIP_NO_ERROR)
{
wasHandled = emberAfWiFiNetworkDiagnosticsClusterResetCountsCallback(apCommandObj, aCommandPath, commandData);
}
break;
}
default: {
// Unrecognized command ID, error status will apply.
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::UnsupportedCommand);
ChipLogError(Zcl, "Unknown command " ChipLogFormatMEI " for cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mCommandId), ChipLogValueMEI(aCommandPath.mClusterId));
return;
}
}
}
if (CHIP_NO_ERROR != TLVError || !wasHandled)
{
apCommandObj->AddStatus(aCommandPath, Protocols::InteractionModel::Status::InvalidCommand);
ChipLogProgress(Zcl, "Failed to dispatch command, TLVError=%" CHIP_ERROR_FORMAT, TLVError.Format());
}
}
}
} // namespace Clusters
void DispatchSingleClusterCommand(const ConcreteCommandPath & aCommandPath, TLV::TLVReader & aReader, CommandHandler * apCommandObj)
{
switch (aCommandPath.mClusterId)
{
case Clusters::AdministratorCommissioning::Id:
Clusters::AdministratorCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralCommissioning::Id:
Clusters::GeneralCommissioning::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GeneralDiagnostics::Id:
Clusters::GeneralDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::GroupKeyManagement::Id:
Clusters::GroupKeyManagement::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Groups::Id:
Clusters::Groups::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::Identify::Id:
Clusters::Identify::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::LevelControl::Id:
Clusters::LevelControl::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OtaSoftwareUpdateRequestor::Id:
Clusters::OtaSoftwareUpdateRequestor::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OnOff::Id:
Clusters::OnOff::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::OperationalCredentials::Id:
Clusters::OperationalCredentials::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::SoftwareDiagnostics::Id:
Clusters::SoftwareDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::ThreadNetworkDiagnostics::Id:
Clusters::ThreadNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
case Clusters::WiFiNetworkDiagnostics::Id:
Clusters::WiFiNetworkDiagnostics::DispatchServerCommand(apCommandObj, aCommandPath, aReader);
break;
default:
ChipLogError(Zcl, "Unknown cluster " ChipLogFormatMEI, ChipLogValueMEI(aCommandPath.mClusterId));
apCommandObj->AddStatus(
aCommandPath,
Protocols::InteractionModel::Status::UnsupportedCluster
);
break;
}
}
} // namespace app
} // namespace chip

View File

@@ -0,0 +1,299 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
// Prevent multiple inclusion
#pragma once
#include <access/Privilege.h>
// Prevent changing generated format
// clang-format off
////////////////////////////////////////////////////////////////////////////////
// Parallel array data (*cluster*, attribute, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
/* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
/* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
/* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
/* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
}
// Parallel array data (cluster, *attribute*, privilege) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
/* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
/* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
/* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
0x00000000, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
0x00000001, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
0x00000005, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
0x00000006, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
0x00000007, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
0x00000000, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
/* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
}
// Parallel array data (cluster, attribute, *privilege*) for read attribute
#define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \
/* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \
/* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
/* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \
/* Cluster: Basic Information, Attribute: Location, Privilege: view */ \
/* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \
/* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \
/* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \
/* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \
/* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \
}
////////////////////////////////////////////////////////////////////////////////
// Parallel array data (*cluster*, attribute, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__CLUSTER { \
0x00000006, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
0x00000008, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
0x00000028, /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: manage */ \
0x00000028, /* Cluster: Basic Information, Attribute: Location, Privilege: administer */ \
0x00000028, /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: manage */ \
0x0000002A, /* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: administer */ \
0x0000002B, /* Cluster: Localization Configuration, Attribute: ActiveLocale, Privilege: manage */ \
0x0000002C, /* Cluster: Time Format Localization, Attribute: HourFormat, Privilege: manage */ \
0x0000002C, /* Cluster: Time Format Localization, Attribute: ActiveCalendarType, Privilege: manage */ \
0x00000030, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
}
// Parallel array data (cluster, *attribute*, privilege) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__ATTRIBUTE { \
0x00004003, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
0x00004000, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
0x00000005, /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: manage */ \
0x00000006, /* Cluster: Basic Information, Attribute: Location, Privilege: administer */ \
0x00000010, /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: manage */ \
0x00000000, /* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: administer */ \
0x00000000, /* Cluster: Localization Configuration, Attribute: ActiveLocale, Privilege: manage */ \
0x00000000, /* Cluster: Time Format Localization, Attribute: HourFormat, Privilege: manage */ \
0x00000001, /* Cluster: Time Format Localization, Attribute: ActiveCalendarType, Privilege: manage */ \
0x00000000, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
0x00000004, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
0x00000000, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
}
// Parallel array data (cluster, attribute, *privilege*) for write attribute
#define GENERATED_ACCESS_WRITE_ATTRIBUTE__PRIVILEGE { \
chip::Access::Privilege::kManage, /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Basic Information, Attribute: Location, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Localization Configuration, Attribute: ActiveLocale, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Time Format Localization, Attribute: HourFormat, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Time Format Localization, Attribute: ActiveCalendarType, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
// Parallel array data (*cluster*, command, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__CLUSTER { \
0x00000003, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
0x00000003, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
0x00000030, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
0x00000030, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
0x00000031, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
0x00000033, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
0x00000034, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \
0x00000035, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \
0x0000003C, /* Cluster: Administrator Commissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
0x0000003C, /* Cluster: Administrator Commissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
0x0000003C, /* Cluster: Administrator Commissioning, Command: RevokeCommissioning, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
0x0000003E, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
0x0000003F, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
0x00000062, /* Cluster: Scenes Management, Command: AddScene, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
}
// Parallel array data (cluster, *command*, privilege) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__COMMAND { \
0x00000000, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
0x00000040, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
0x00000000, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
0x00000003, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
0x00000004, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
0x00000005, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
0x00000000, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
0x00000002, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
0x00000004, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
0x00000000, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
0x00000002, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
0x00000003, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
0x00000004, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
0x00000006, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
0x00000008, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
0x00000000, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
0x00000000, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \
0x00000000, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \
0x00000000, /* Cluster: Administrator Commissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
0x00000001, /* Cluster: Administrator Commissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
0x00000002, /* Cluster: Administrator Commissioning, Command: RevokeCommissioning, Privilege: administer */ \
0x00000000, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
0x00000002, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
0x00000004, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
0x00000006, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \
0x00000007, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \
0x00000009, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
0x0000000A, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
0x0000000B, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
0x00000000, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
0x00000001, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
0x00000003, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
0x00000004, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
0x00000000, /* Cluster: Scenes Management, Command: AddScene, Privilege: manage */ \
0x00000002, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000003, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000004, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
}
// Parallel array data (cluster, command, *privilege*) for invoke command
#define GENERATED_ACCESS_INVOKE_COMMAND__PRIVILEGE { \
chip::Access::Privilege::kManage, /* Cluster: Identify, Command: Identify, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Identify, Command: TriggerEffect, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: AddGroup, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: RemoveGroup, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: RemoveAllGroups, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Groups, Command: AddGroupIfIdentifying, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: ArmFailSafe, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: SetRegulatoryConfig, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: General Commissioning, Command: CommissioningComplete, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ScanNetworks, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateWiFiNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: AddOrUpdateThreadNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \
chip::Access::Privilege::kAdminister, /* Cluster: Administrator Commissioning, Command: OpenCommissioningWindow, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Administrator Commissioning, Command: OpenBasicCommissioningWindow, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Administrator Commissioning, Command: RevokeCommissioning, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: AttestationRequest, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: CertificateChainRequest, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: CSRRequest, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: AddNOC, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: UpdateNOC, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: UpdateFabricLabel, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: RemoveFabric, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Command: AddTrustedRootCertificate, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Group Key Management, Command: KeySetWrite, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Group Key Management, Command: KeySetRead, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Group Key Management, Command: KeySetRemove, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Group Key Management, Command: KeySetReadAllIndices, Privilege: administer */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: AddScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
// Parallel array data (*cluster*, event, privilege) for read event
#define GENERATED_ACCESS_READ_EVENT__CLUSTER { \
0x0000001F, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
0x0000001F, /* Cluster: Access Control, Event: FabricRestrictionReviewUpdate, Privilege: administer */ \
}
// Parallel array data (cluster, *event*, privilege) for read event
#define GENERATED_ACCESS_READ_EVENT__EVENT { \
0x00000000, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
0x00000001, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
0x00000002, /* Cluster: Access Control, Event: FabricRestrictionReviewUpdate, Privilege: administer */ \
}
// Parallel array data (cluster, event, *privilege*) for read event
#define GENERATED_ACCESS_READ_EVENT__PRIVILEGE { \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: AccessControlEntryChanged, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: AccessControlExtensionChanged, Privilege: administer */ \
chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Event: FabricRestrictionReviewUpdate, Privilege: administer */ \
}
////////////////////////////////////////////////////////////////////////////////
// clang-format on

View File

@@ -0,0 +1,140 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
// Prevent multiple inclusion
#pragma once
#include <cstdint>
// ZCL attribute types
enum {
ZCL_NO_DATA_ATTRIBUTE_TYPE = 0x00, // No data
ZCL_BOOLEAN_ATTRIBUTE_TYPE = 0x10, // Boolean
ZCL_BITMAP8_ATTRIBUTE_TYPE = 0x18, // 8-bit bitmap
ZCL_BITMAP16_ATTRIBUTE_TYPE = 0x19, // 16-bit bitmap
ZCL_BITMAP32_ATTRIBUTE_TYPE = 0x1B, // 32-bit bitmap
ZCL_BITMAP64_ATTRIBUTE_TYPE = 0x1F, // 64-bit bitmap
ZCL_INT8U_ATTRIBUTE_TYPE = 0x20, // Unsigned 8-bit integer
ZCL_INT16U_ATTRIBUTE_TYPE = 0x21, // Unsigned 16-bit integer
ZCL_INT24U_ATTRIBUTE_TYPE = 0x22, // Unsigned 24-bit integer
ZCL_INT32U_ATTRIBUTE_TYPE = 0x23, // Unsigned 32-bit integer
ZCL_INT40U_ATTRIBUTE_TYPE = 0x24, // Unsigned 40-bit integer
ZCL_INT48U_ATTRIBUTE_TYPE = 0x25, // Unsigned 48-bit integer
ZCL_INT56U_ATTRIBUTE_TYPE = 0x26, // Unsigned 56-bit integer
ZCL_INT64U_ATTRIBUTE_TYPE = 0x27, // Unsigned 64-bit integer
ZCL_INT8S_ATTRIBUTE_TYPE = 0x28, // Signed 8-bit integer
ZCL_INT16S_ATTRIBUTE_TYPE = 0x29, // Signed 16-bit integer
ZCL_INT24S_ATTRIBUTE_TYPE = 0x2A, // Signed 24-bit integer
ZCL_INT32S_ATTRIBUTE_TYPE = 0x2B, // Signed 32-bit integer
ZCL_INT40S_ATTRIBUTE_TYPE = 0x2C, // Signed 40-bit integer
ZCL_INT48S_ATTRIBUTE_TYPE = 0x2D, // Signed 48-bit integer
ZCL_INT56S_ATTRIBUTE_TYPE = 0x2E, // Signed 56-bit integer
ZCL_INT64S_ATTRIBUTE_TYPE = 0x2F, // Signed 64-bit integer
ZCL_ENUM8_ATTRIBUTE_TYPE = 0x30, // 8-bit enumeration
ZCL_ENUM16_ATTRIBUTE_TYPE = 0x31, // 16-bit enumeration
ZCL_PRIORITY_ATTRIBUTE_TYPE = 0x32, // Priority
ZCL_STATUS_ATTRIBUTE_TYPE = 0x33, // Status Code
ZCL_SINGLE_ATTRIBUTE_TYPE = 0x39, // Single precision
ZCL_DOUBLE_ATTRIBUTE_TYPE = 0x3A, // Double precision
ZCL_OCTET_STRING_ATTRIBUTE_TYPE = 0x41, // Octet String
ZCL_CHAR_STRING_ATTRIBUTE_TYPE = 0x42, // Character String
ZCL_LONG_OCTET_STRING_ATTRIBUTE_TYPE = 0x43, // Long Octet String
ZCL_LONG_CHAR_STRING_ATTRIBUTE_TYPE = 0x44, // Long Character String
ZCL_ARRAY_ATTRIBUTE_TYPE = 0x48, // List
ZCL_STRUCT_ATTRIBUTE_TYPE = 0x4C, // Structure
ZCL_GROUP_ID_ATTRIBUTE_TYPE = 0xC0, // Group ID
ZCL_ENDPOINT_NO_ATTRIBUTE_TYPE = 0xC1, // Endpoint Number
ZCL_VENDOR_ID_ATTRIBUTE_TYPE = 0xC2, // Vendor ID
ZCL_DEVTYPE_ID_ATTRIBUTE_TYPE = 0xC3, // Device Type ID
ZCL_FABRIC_ID_ATTRIBUTE_TYPE = 0xC4, // Fabric ID
ZCL_FABRIC_IDX_ATTRIBUTE_TYPE = 0xC5, // Fabric Index
ZCL_ENTRY_IDX_ATTRIBUTE_TYPE = 0xC6, // Entry Index
ZCL_DATA_VER_ATTRIBUTE_TYPE = 0xC7, // Data Version
ZCL_EVENT_NO_ATTRIBUTE_TYPE = 0xC8, // Event Number
ZCL_SEMTAG_ATTRIBUTE_TYPE = 0xC9, // Semantic Tag
ZCL_NAMESPACE_ATTRIBUTE_TYPE = 0xCA, // Namespace
ZCL_TAG_ATTRIBUTE_TYPE = 0xCB, // Tag
ZCL_SYSTIME_US_ATTRIBUTE_TYPE = 0xD0, // System Time Microseconds
ZCL_SYSTIME_MS_ATTRIBUTE_TYPE = 0xD1, // System Time Milliseconds
ZCL_ELAPSED_S_ATTRIBUTE_TYPE = 0xD2, // Elapsed Time Seconds
ZCL_TEMPERATURE_ATTRIBUTE_TYPE = 0xD8, // Temperature
ZCL_POWER_MW_ATTRIBUTE_TYPE = 0xD9, // Power milliwatts
ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE = 0xDA, // Amperage milliamps
ZCL_VOLTAGE_MV_ATTRIBUTE_TYPE = 0xDB, // Voltage millivolts
ZCL_ENERGY_MWH_ATTRIBUTE_TYPE = 0xDC, // Energy milliwatt-hours
ZCL_TOD_ATTRIBUTE_TYPE = 0xE0, // Time of day
ZCL_DATE_ATTRIBUTE_TYPE = 0xE1, // Date
ZCL_EPOCH_US_ATTRIBUTE_TYPE = 0xE3, // Epoch Microseconds
ZCL_EPOCH_S_ATTRIBUTE_TYPE = 0xE4, // Epoch Seconds
ZCL_POSIX_MS_ATTRIBUTE_TYPE = 0xE5, // Posix Time Milliseconds
ZCL_PERCENT_ATTRIBUTE_TYPE = 0xE6, // Percentage units 1%
ZCL_PERCENT100THS_ATTRIBUTE_TYPE = 0xE7, // Percentage units 0.01%
ZCL_CLUSTER_ID_ATTRIBUTE_TYPE = 0xE8, // Cluster ID
ZCL_ATTRIB_ID_ATTRIBUTE_TYPE = 0xE9, // Attribute ID
ZCL_FIELD_ID_ATTRIBUTE_TYPE = 0xEB, // Field ID
ZCL_EVENT_ID_ATTRIBUTE_TYPE = 0xEC, // Event ID
ZCL_COMMAND_ID_ATTRIBUTE_TYPE = 0xED, // Command ID
ZCL_ACTION_ID_ATTRIBUTE_TYPE = 0xEE, // Action ID
ZCL_TRANS_ID_ATTRIBUTE_TYPE = 0xEF, // Transaction ID
ZCL_NODE_ID_ATTRIBUTE_TYPE = 0xF0, // Node ID
ZCL_IPADR_ATTRIBUTE_TYPE = 0xF2, // IP Address
ZCL_IPV4ADR_ATTRIBUTE_TYPE = 0xF3, // IPv4 Address
ZCL_IPV6ADR_ATTRIBUTE_TYPE = 0xF4, // IPv6 Address
ZCL_IPV6PRE_ATTRIBUTE_TYPE = 0xF5, // IPv6 Prefix
ZCL_HWADR_ATTRIBUTE_TYPE = 0xF6, // Hardware Address
ZCL_UNKNOWN_ATTRIBUTE_TYPE = 0xFF, // Unknown
};
namespace chip {
namespace app {
inline bool IsSignedAttributeType(uint8_t attributeType)
{
switch (attributeType) {
case ZCL_INT8S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT16S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT24S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT32S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT40S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT48S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT56S_ATTRIBUTE_TYPE:
return true;
case ZCL_INT64S_ATTRIBUTE_TYPE:
return true;
case ZCL_TEMPERATURE_ATTRIBUTE_TYPE:
return true;
case ZCL_POWER_MW_ATTRIBUTE_TYPE:
return true;
case ZCL_AMPERAGE_MA_ATTRIBUTE_TYPE:
return true;
case ZCL_VOLTAGE_MV_ATTRIBUTE_TYPE:
return true;
case ZCL_ENERGY_MWH_ATTRIBUTE_TYPE:
return true;
default:
return false;
}
}
} // namespace app
} // namespace chip

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,403 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
#pragma once
#include <app/util/basic-types.h>
namespace chip {
namespace app {
namespace Clusters {
namespace Identify {
static constexpr ClusterId Id = 0x00000003;
} // namespace Identify {
namespace Groups {
static constexpr ClusterId Id = 0x00000004;
} // namespace Groups {
namespace OnOff {
static constexpr ClusterId Id = 0x00000006;
} // namespace OnOff {
namespace LevelControl {
static constexpr ClusterId Id = 0x00000008;
} // namespace LevelControl {
namespace PulseWidthModulation {
static constexpr ClusterId Id = 0x0000001C;
} // namespace PulseWidthModulation {
namespace Descriptor {
static constexpr ClusterId Id = 0x0000001D;
} // namespace Descriptor {
namespace Binding {
static constexpr ClusterId Id = 0x0000001E;
} // namespace Binding {
namespace AccessControl {
static constexpr ClusterId Id = 0x0000001F;
} // namespace AccessControl {
namespace Actions {
static constexpr ClusterId Id = 0x00000025;
} // namespace Actions {
namespace BasicInformation {
static constexpr ClusterId Id = 0x00000028;
} // namespace BasicInformation {
namespace OtaSoftwareUpdateProvider {
static constexpr ClusterId Id = 0x00000029;
} // namespace OtaSoftwareUpdateProvider {
namespace OtaSoftwareUpdateRequestor {
static constexpr ClusterId Id = 0x0000002A;
} // namespace OtaSoftwareUpdateRequestor {
namespace LocalizationConfiguration {
static constexpr ClusterId Id = 0x0000002B;
} // namespace LocalizationConfiguration {
namespace TimeFormatLocalization {
static constexpr ClusterId Id = 0x0000002C;
} // namespace TimeFormatLocalization {
namespace UnitLocalization {
static constexpr ClusterId Id = 0x0000002D;
} // namespace UnitLocalization {
namespace PowerSourceConfiguration {
static constexpr ClusterId Id = 0x0000002E;
} // namespace PowerSourceConfiguration {
namespace PowerSource {
static constexpr ClusterId Id = 0x0000002F;
} // namespace PowerSource {
namespace GeneralCommissioning {
static constexpr ClusterId Id = 0x00000030;
} // namespace GeneralCommissioning {
namespace NetworkCommissioning {
static constexpr ClusterId Id = 0x00000031;
} // namespace NetworkCommissioning {
namespace DiagnosticLogs {
static constexpr ClusterId Id = 0x00000032;
} // namespace DiagnosticLogs {
namespace GeneralDiagnostics {
static constexpr ClusterId Id = 0x00000033;
} // namespace GeneralDiagnostics {
namespace SoftwareDiagnostics {
static constexpr ClusterId Id = 0x00000034;
} // namespace SoftwareDiagnostics {
namespace ThreadNetworkDiagnostics {
static constexpr ClusterId Id = 0x00000035;
} // namespace ThreadNetworkDiagnostics {
namespace WiFiNetworkDiagnostics {
static constexpr ClusterId Id = 0x00000036;
} // namespace WiFiNetworkDiagnostics {
namespace EthernetNetworkDiagnostics {
static constexpr ClusterId Id = 0x00000037;
} // namespace EthernetNetworkDiagnostics {
namespace TimeSynchronization {
static constexpr ClusterId Id = 0x00000038;
} // namespace TimeSynchronization {
namespace BridgedDeviceBasicInformation {
static constexpr ClusterId Id = 0x00000039;
} // namespace BridgedDeviceBasicInformation {
namespace Switch {
static constexpr ClusterId Id = 0x0000003B;
} // namespace Switch {
namespace AdministratorCommissioning {
static constexpr ClusterId Id = 0x0000003C;
} // namespace AdministratorCommissioning {
namespace OperationalCredentials {
static constexpr ClusterId Id = 0x0000003E;
} // namespace OperationalCredentials {
namespace GroupKeyManagement {
static constexpr ClusterId Id = 0x0000003F;
} // namespace GroupKeyManagement {
namespace FixedLabel {
static constexpr ClusterId Id = 0x00000040;
} // namespace FixedLabel {
namespace UserLabel {
static constexpr ClusterId Id = 0x00000041;
} // namespace UserLabel {
namespace ProxyConfiguration {
static constexpr ClusterId Id = 0x00000042;
} // namespace ProxyConfiguration {
namespace ProxyDiscovery {
static constexpr ClusterId Id = 0x00000043;
} // namespace ProxyDiscovery {
namespace ProxyValid {
static constexpr ClusterId Id = 0x00000044;
} // namespace ProxyValid {
namespace BooleanState {
static constexpr ClusterId Id = 0x00000045;
} // namespace BooleanState {
namespace IcdManagement {
static constexpr ClusterId Id = 0x00000046;
} // namespace IcdManagement {
namespace Timer {
static constexpr ClusterId Id = 0x00000047;
} // namespace Timer {
namespace OvenCavityOperationalState {
static constexpr ClusterId Id = 0x00000048;
} // namespace OvenCavityOperationalState {
namespace OvenMode {
static constexpr ClusterId Id = 0x00000049;
} // namespace OvenMode {
namespace LaundryDryerControls {
static constexpr ClusterId Id = 0x0000004A;
} // namespace LaundryDryerControls {
namespace ModeSelect {
static constexpr ClusterId Id = 0x00000050;
} // namespace ModeSelect {
namespace LaundryWasherMode {
static constexpr ClusterId Id = 0x00000051;
} // namespace LaundryWasherMode {
namespace RefrigeratorAndTemperatureControlledCabinetMode {
static constexpr ClusterId Id = 0x00000052;
} // namespace RefrigeratorAndTemperatureControlledCabinetMode {
namespace LaundryWasherControls {
static constexpr ClusterId Id = 0x00000053;
} // namespace LaundryWasherControls {
namespace RvcRunMode {
static constexpr ClusterId Id = 0x00000054;
} // namespace RvcRunMode {
namespace RvcCleanMode {
static constexpr ClusterId Id = 0x00000055;
} // namespace RvcCleanMode {
namespace TemperatureControl {
static constexpr ClusterId Id = 0x00000056;
} // namespace TemperatureControl {
namespace RefrigeratorAlarm {
static constexpr ClusterId Id = 0x00000057;
} // namespace RefrigeratorAlarm {
namespace DishwasherMode {
static constexpr ClusterId Id = 0x00000059;
} // namespace DishwasherMode {
namespace AirQuality {
static constexpr ClusterId Id = 0x0000005B;
} // namespace AirQuality {
namespace SmokeCoAlarm {
static constexpr ClusterId Id = 0x0000005C;
} // namespace SmokeCoAlarm {
namespace DishwasherAlarm {
static constexpr ClusterId Id = 0x0000005D;
} // namespace DishwasherAlarm {
namespace MicrowaveOvenMode {
static constexpr ClusterId Id = 0x0000005E;
} // namespace MicrowaveOvenMode {
namespace MicrowaveOvenControl {
static constexpr ClusterId Id = 0x0000005F;
} // namespace MicrowaveOvenControl {
namespace OperationalState {
static constexpr ClusterId Id = 0x00000060;
} // namespace OperationalState {
namespace RvcOperationalState {
static constexpr ClusterId Id = 0x00000061;
} // namespace RvcOperationalState {
namespace ScenesManagement {
static constexpr ClusterId Id = 0x00000062;
} // namespace ScenesManagement {
namespace HepaFilterMonitoring {
static constexpr ClusterId Id = 0x00000071;
} // namespace HepaFilterMonitoring {
namespace ActivatedCarbonFilterMonitoring {
static constexpr ClusterId Id = 0x00000072;
} // namespace ActivatedCarbonFilterMonitoring {
namespace BooleanStateConfiguration {
static constexpr ClusterId Id = 0x00000080;
} // namespace BooleanStateConfiguration {
namespace ValveConfigurationAndControl {
static constexpr ClusterId Id = 0x00000081;
} // namespace ValveConfigurationAndControl {
namespace ElectricalPowerMeasurement {
static constexpr ClusterId Id = 0x00000090;
} // namespace ElectricalPowerMeasurement {
namespace ElectricalEnergyMeasurement {
static constexpr ClusterId Id = 0x00000091;
} // namespace ElectricalEnergyMeasurement {
namespace WaterHeaterManagement {
static constexpr ClusterId Id = 0x00000094;
} // namespace WaterHeaterManagement {
namespace DemandResponseLoadControl {
static constexpr ClusterId Id = 0x00000096;
} // namespace DemandResponseLoadControl {
namespace Messages {
static constexpr ClusterId Id = 0x00000097;
} // namespace Messages {
namespace DeviceEnergyManagement {
static constexpr ClusterId Id = 0x00000098;
} // namespace DeviceEnergyManagement {
namespace EnergyEvse {
static constexpr ClusterId Id = 0x00000099;
} // namespace EnergyEvse {
namespace EnergyPreference {
static constexpr ClusterId Id = 0x0000009B;
} // namespace EnergyPreference {
namespace PowerTopology {
static constexpr ClusterId Id = 0x0000009C;
} // namespace PowerTopology {
namespace EnergyEvseMode {
static constexpr ClusterId Id = 0x0000009D;
} // namespace EnergyEvseMode {
namespace WaterHeaterMode {
static constexpr ClusterId Id = 0x0000009E;
} // namespace WaterHeaterMode {
namespace DeviceEnergyManagementMode {
static constexpr ClusterId Id = 0x0000009F;
} // namespace DeviceEnergyManagementMode {
namespace DoorLock {
static constexpr ClusterId Id = 0x00000101;
} // namespace DoorLock {
namespace WindowCovering {
static constexpr ClusterId Id = 0x00000102;
} // namespace WindowCovering {
namespace ServiceArea {
static constexpr ClusterId Id = 0x00000150;
} // namespace ServiceArea {
namespace PumpConfigurationAndControl {
static constexpr ClusterId Id = 0x00000200;
} // namespace PumpConfigurationAndControl {
namespace Thermostat {
static constexpr ClusterId Id = 0x00000201;
} // namespace Thermostat {
namespace FanControl {
static constexpr ClusterId Id = 0x00000202;
} // namespace FanControl {
namespace ThermostatUserInterfaceConfiguration {
static constexpr ClusterId Id = 0x00000204;
} // namespace ThermostatUserInterfaceConfiguration {
namespace ColorControl {
static constexpr ClusterId Id = 0x00000300;
} // namespace ColorControl {
namespace BallastConfiguration {
static constexpr ClusterId Id = 0x00000301;
} // namespace BallastConfiguration {
namespace IlluminanceMeasurement {
static constexpr ClusterId Id = 0x00000400;
} // namespace IlluminanceMeasurement {
namespace TemperatureMeasurement {
static constexpr ClusterId Id = 0x00000402;
} // namespace TemperatureMeasurement {
namespace PressureMeasurement {
static constexpr ClusterId Id = 0x00000403;
} // namespace PressureMeasurement {
namespace FlowMeasurement {
static constexpr ClusterId Id = 0x00000404;
} // namespace FlowMeasurement {
namespace RelativeHumidityMeasurement {
static constexpr ClusterId Id = 0x00000405;
} // namespace RelativeHumidityMeasurement {
namespace OccupancySensing {
static constexpr ClusterId Id = 0x00000406;
} // namespace OccupancySensing {
namespace CarbonMonoxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000040C;
} // namespace CarbonMonoxideConcentrationMeasurement {
namespace CarbonDioxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000040D;
} // namespace CarbonDioxideConcentrationMeasurement {
namespace NitrogenDioxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000413;
} // namespace NitrogenDioxideConcentrationMeasurement {
namespace OzoneConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000415;
} // namespace OzoneConcentrationMeasurement {
namespace Pm25ConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042A;
} // namespace Pm25ConcentrationMeasurement {
namespace FormaldehydeConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042B;
} // namespace FormaldehydeConcentrationMeasurement {
namespace Pm1ConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042C;
} // namespace Pm1ConcentrationMeasurement {
namespace Pm10ConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042D;
} // namespace Pm10ConcentrationMeasurement {
namespace TotalVolatileOrganicCompoundsConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042E;
} // namespace TotalVolatileOrganicCompoundsConcentrationMeasurement {
namespace RadonConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042F;
} // namespace RadonConcentrationMeasurement {
namespace WiFiNetworkManagement {
static constexpr ClusterId Id = 0x00000451;
} // namespace WiFiNetworkManagement {
namespace ThreadBorderRouterManagement {
static constexpr ClusterId Id = 0x00000452;
} // namespace ThreadBorderRouterManagement {
namespace ThreadNetworkDirectory {
static constexpr ClusterId Id = 0x00000453;
} // namespace ThreadNetworkDirectory {
namespace WakeOnLan {
static constexpr ClusterId Id = 0x00000503;
} // namespace WakeOnLan {
namespace Channel {
static constexpr ClusterId Id = 0x00000504;
} // namespace Channel {
namespace TargetNavigator {
static constexpr ClusterId Id = 0x00000505;
} // namespace TargetNavigator {
namespace MediaPlayback {
static constexpr ClusterId Id = 0x00000506;
} // namespace MediaPlayback {
namespace MediaInput {
static constexpr ClusterId Id = 0x00000507;
} // namespace MediaInput {
namespace LowPower {
static constexpr ClusterId Id = 0x00000508;
} // namespace LowPower {
namespace KeypadInput {
static constexpr ClusterId Id = 0x00000509;
} // namespace KeypadInput {
namespace ContentLauncher {
static constexpr ClusterId Id = 0x0000050A;
} // namespace ContentLauncher {
namespace AudioOutput {
static constexpr ClusterId Id = 0x0000050B;
} // namespace AudioOutput {
namespace ApplicationLauncher {
static constexpr ClusterId Id = 0x0000050C;
} // namespace ApplicationLauncher {
namespace ApplicationBasic {
static constexpr ClusterId Id = 0x0000050D;
} // namespace ApplicationBasic {
namespace AccountLogin {
static constexpr ClusterId Id = 0x0000050E;
} // namespace AccountLogin {
namespace ContentControl {
static constexpr ClusterId Id = 0x0000050F;
} // namespace ContentControl {
namespace ContentAppObserver {
static constexpr ClusterId Id = 0x00000510;
} // namespace ContentAppObserver {
namespace WebRTCTransportProvider {
static constexpr ClusterId Id = 0x00000553;
} // namespace WebRTCTransportProvider {
namespace Chime {
static constexpr ClusterId Id = 0x00000556;
} // namespace Chime {
namespace EcosystemInformation {
static constexpr ClusterId Id = 0x00000750;
} // namespace EcosystemInformation {
namespace CommissionerControl {
static constexpr ClusterId Id = 0x00000751;
} // namespace CommissionerControl {
namespace UnitTesting {
static constexpr ClusterId Id = 0xFFF1FC05;
} // namespace UnitTesting {
namespace FaultInjection {
static constexpr ClusterId Id = 0xFFF1FC06;
} // namespace FaultInjection {
namespace SampleMei {
static constexpr ClusterId Id = 0xFFF1FC20;
} // namespace SampleMei {
} // namespace Clusters
} // namespace app
} // namespace chip

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,727 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
#pragma once
#include <app/util/basic-types.h>
namespace chip {
namespace app {
namespace Clusters {
namespace AccessControl {
namespace Events {
namespace AccessControlEntryChanged {
static constexpr EventId Id = 0x00000000;
} // namespace AccessControlEntryChanged
namespace AccessControlExtensionChanged {
static constexpr EventId Id = 0x00000001;
} // namespace AccessControlExtensionChanged
namespace FabricRestrictionReviewUpdate {
static constexpr EventId Id = 0x00000002;
} // namespace FabricRestrictionReviewUpdate
} // namespace Events
} // namespace AccessControl
namespace Actions {
namespace Events {
namespace StateChanged {
static constexpr EventId Id = 0x00000000;
} // namespace StateChanged
namespace ActionFailed {
static constexpr EventId Id = 0x00000001;
} // namespace ActionFailed
} // namespace Events
} // namespace Actions
namespace BasicInformation {
namespace Events {
namespace StartUp {
static constexpr EventId Id = 0x00000000;
} // namespace StartUp
namespace ShutDown {
static constexpr EventId Id = 0x00000001;
} // namespace ShutDown
namespace Leave {
static constexpr EventId Id = 0x00000002;
} // namespace Leave
namespace ReachableChanged {
static constexpr EventId Id = 0x00000003;
} // namespace ReachableChanged
} // namespace Events
} // namespace BasicInformation
namespace OtaSoftwareUpdateRequestor {
namespace Events {
namespace StateTransition {
static constexpr EventId Id = 0x00000000;
} // namespace StateTransition
namespace VersionApplied {
static constexpr EventId Id = 0x00000001;
} // namespace VersionApplied
namespace DownloadError {
static constexpr EventId Id = 0x00000002;
} // namespace DownloadError
} // namespace Events
} // namespace OtaSoftwareUpdateRequestor
namespace PowerSource {
namespace Events {
namespace WiredFaultChange {
static constexpr EventId Id = 0x00000000;
} // namespace WiredFaultChange
namespace BatFaultChange {
static constexpr EventId Id = 0x00000001;
} // namespace BatFaultChange
namespace BatChargeFaultChange {
static constexpr EventId Id = 0x00000002;
} // namespace BatChargeFaultChange
} // namespace Events
} // namespace PowerSource
namespace GeneralDiagnostics {
namespace Events {
namespace HardwareFaultChange {
static constexpr EventId Id = 0x00000000;
} // namespace HardwareFaultChange
namespace RadioFaultChange {
static constexpr EventId Id = 0x00000001;
} // namespace RadioFaultChange
namespace NetworkFaultChange {
static constexpr EventId Id = 0x00000002;
} // namespace NetworkFaultChange
namespace BootReason {
static constexpr EventId Id = 0x00000003;
} // namespace BootReason
} // namespace Events
} // namespace GeneralDiagnostics
namespace SoftwareDiagnostics {
namespace Events {
namespace SoftwareFault {
static constexpr EventId Id = 0x00000000;
} // namespace SoftwareFault
} // namespace Events
} // namespace SoftwareDiagnostics
namespace ThreadNetworkDiagnostics {
namespace Events {
namespace ConnectionStatus {
static constexpr EventId Id = 0x00000000;
} // namespace ConnectionStatus
namespace NetworkFaultChange {
static constexpr EventId Id = 0x00000001;
} // namespace NetworkFaultChange
} // namespace Events
} // namespace ThreadNetworkDiagnostics
namespace WiFiNetworkDiagnostics {
namespace Events {
namespace Disconnection {
static constexpr EventId Id = 0x00000000;
} // namespace Disconnection
namespace AssociationFailure {
static constexpr EventId Id = 0x00000001;
} // namespace AssociationFailure
namespace ConnectionStatus {
static constexpr EventId Id = 0x00000002;
} // namespace ConnectionStatus
} // namespace Events
} // namespace WiFiNetworkDiagnostics
namespace TimeSynchronization {
namespace Events {
namespace DSTTableEmpty {
static constexpr EventId Id = 0x00000000;
} // namespace DSTTableEmpty
namespace DSTStatus {
static constexpr EventId Id = 0x00000001;
} // namespace DSTStatus
namespace TimeZoneStatus {
static constexpr EventId Id = 0x00000002;
} // namespace TimeZoneStatus
namespace TimeFailure {
static constexpr EventId Id = 0x00000003;
} // namespace TimeFailure
namespace MissingTrustedTimeSource {
static constexpr EventId Id = 0x00000004;
} // namespace MissingTrustedTimeSource
} // namespace Events
} // namespace TimeSynchronization
namespace BridgedDeviceBasicInformation {
namespace Events {
namespace StartUp {
static constexpr EventId Id = 0x00000000;
} // namespace StartUp
namespace ShutDown {
static constexpr EventId Id = 0x00000001;
} // namespace ShutDown
namespace Leave {
static constexpr EventId Id = 0x00000002;
} // namespace Leave
namespace ReachableChanged {
static constexpr EventId Id = 0x00000003;
} // namespace ReachableChanged
namespace ActiveChanged {
static constexpr EventId Id = 0x00000080;
} // namespace ActiveChanged
} // namespace Events
} // namespace BridgedDeviceBasicInformation
namespace Switch {
namespace Events {
namespace SwitchLatched {
static constexpr EventId Id = 0x00000000;
} // namespace SwitchLatched
namespace InitialPress {
static constexpr EventId Id = 0x00000001;
} // namespace InitialPress
namespace LongPress {
static constexpr EventId Id = 0x00000002;
} // namespace LongPress
namespace ShortRelease {
static constexpr EventId Id = 0x00000003;
} // namespace ShortRelease
namespace LongRelease {
static constexpr EventId Id = 0x00000004;
} // namespace LongRelease
namespace MultiPressOngoing {
static constexpr EventId Id = 0x00000005;
} // namespace MultiPressOngoing
namespace MultiPressComplete {
static constexpr EventId Id = 0x00000006;
} // namespace MultiPressComplete
} // namespace Events
} // namespace Switch
namespace BooleanState {
namespace Events {
namespace StateChange {
static constexpr EventId Id = 0x00000000;
} // namespace StateChange
} // namespace Events
} // namespace BooleanState
namespace OvenCavityOperationalState {
namespace Events {
namespace OperationalError {
static constexpr EventId Id = 0x00000000;
} // namespace OperationalError
namespace OperationCompletion {
static constexpr EventId Id = 0x00000001;
} // namespace OperationCompletion
} // namespace Events
} // namespace OvenCavityOperationalState
namespace RefrigeratorAlarm {
namespace Events {
namespace Notify {
static constexpr EventId Id = 0x00000000;
} // namespace Notify
} // namespace Events
} // namespace RefrigeratorAlarm
namespace SmokeCoAlarm {
namespace Events {
namespace SmokeAlarm {
static constexpr EventId Id = 0x00000000;
} // namespace SmokeAlarm
namespace COAlarm {
static constexpr EventId Id = 0x00000001;
} // namespace COAlarm
namespace LowBattery {
static constexpr EventId Id = 0x00000002;
} // namespace LowBattery
namespace HardwareFault {
static constexpr EventId Id = 0x00000003;
} // namespace HardwareFault
namespace EndOfService {
static constexpr EventId Id = 0x00000004;
} // namespace EndOfService
namespace SelfTestComplete {
static constexpr EventId Id = 0x00000005;
} // namespace SelfTestComplete
namespace AlarmMuted {
static constexpr EventId Id = 0x00000006;
} // namespace AlarmMuted
namespace MuteEnded {
static constexpr EventId Id = 0x00000007;
} // namespace MuteEnded
namespace InterconnectSmokeAlarm {
static constexpr EventId Id = 0x00000008;
} // namespace InterconnectSmokeAlarm
namespace InterconnectCOAlarm {
static constexpr EventId Id = 0x00000009;
} // namespace InterconnectCOAlarm
namespace AllClear {
static constexpr EventId Id = 0x0000000A;
} // namespace AllClear
} // namespace Events
} // namespace SmokeCoAlarm
namespace DishwasherAlarm {
namespace Events {
namespace Notify {
static constexpr EventId Id = 0x00000000;
} // namespace Notify
} // namespace Events
} // namespace DishwasherAlarm
namespace OperationalState {
namespace Events {
namespace OperationalError {
static constexpr EventId Id = 0x00000000;
} // namespace OperationalError
namespace OperationCompletion {
static constexpr EventId Id = 0x00000001;
} // namespace OperationCompletion
} // namespace Events
} // namespace OperationalState
namespace RvcOperationalState {
namespace Events {
namespace OperationalError {
static constexpr EventId Id = 0x00000000;
} // namespace OperationalError
namespace OperationCompletion {
static constexpr EventId Id = 0x00000001;
} // namespace OperationCompletion
} // namespace Events
} // namespace RvcOperationalState
namespace BooleanStateConfiguration {
namespace Events {
namespace AlarmsStateChanged {
static constexpr EventId Id = 0x00000000;
} // namespace AlarmsStateChanged
namespace SensorFault {
static constexpr EventId Id = 0x00000001;
} // namespace SensorFault
} // namespace Events
} // namespace BooleanStateConfiguration
namespace ValveConfigurationAndControl {
namespace Events {
namespace ValveStateChanged {
static constexpr EventId Id = 0x00000000;
} // namespace ValveStateChanged
namespace ValveFault {
static constexpr EventId Id = 0x00000001;
} // namespace ValveFault
} // namespace Events
} // namespace ValveConfigurationAndControl
namespace ElectricalPowerMeasurement {
namespace Events {
namespace MeasurementPeriodRanges {
static constexpr EventId Id = 0x00000000;
} // namespace MeasurementPeriodRanges
} // namespace Events
} // namespace ElectricalPowerMeasurement
namespace ElectricalEnergyMeasurement {
namespace Events {
namespace CumulativeEnergyMeasured {
static constexpr EventId Id = 0x00000000;
} // namespace CumulativeEnergyMeasured
namespace PeriodicEnergyMeasured {
static constexpr EventId Id = 0x00000001;
} // namespace PeriodicEnergyMeasured
} // namespace Events
} // namespace ElectricalEnergyMeasurement
namespace WaterHeaterManagement {
namespace Events {
namespace BoostStarted {
static constexpr EventId Id = 0x00000000;
} // namespace BoostStarted
namespace BoostEnded {
static constexpr EventId Id = 0x00000001;
} // namespace BoostEnded
} // namespace Events
} // namespace WaterHeaterManagement
namespace DemandResponseLoadControl {
namespace Events {
namespace LoadControlEventStatusChange {
static constexpr EventId Id = 0x00000000;
} // namespace LoadControlEventStatusChange
} // namespace Events
} // namespace DemandResponseLoadControl
namespace Messages {
namespace Events {
namespace MessageQueued {
static constexpr EventId Id = 0x00000000;
} // namespace MessageQueued
namespace MessagePresented {
static constexpr EventId Id = 0x00000001;
} // namespace MessagePresented
namespace MessageComplete {
static constexpr EventId Id = 0x00000002;
} // namespace MessageComplete
} // namespace Events
} // namespace Messages
namespace DeviceEnergyManagement {
namespace Events {
namespace PowerAdjustStart {
static constexpr EventId Id = 0x00000000;
} // namespace PowerAdjustStart
namespace PowerAdjustEnd {
static constexpr EventId Id = 0x00000001;
} // namespace PowerAdjustEnd
namespace Paused {
static constexpr EventId Id = 0x00000002;
} // namespace Paused
namespace Resumed {
static constexpr EventId Id = 0x00000003;
} // namespace Resumed
} // namespace Events
} // namespace DeviceEnergyManagement
namespace EnergyEvse {
namespace Events {
namespace EVConnected {
static constexpr EventId Id = 0x00000000;
} // namespace EVConnected
namespace EVNotDetected {
static constexpr EventId Id = 0x00000001;
} // namespace EVNotDetected
namespace EnergyTransferStarted {
static constexpr EventId Id = 0x00000002;
} // namespace EnergyTransferStarted
namespace EnergyTransferStopped {
static constexpr EventId Id = 0x00000003;
} // namespace EnergyTransferStopped
namespace Fault {
static constexpr EventId Id = 0x00000004;
} // namespace Fault
namespace Rfid {
static constexpr EventId Id = 0x00000005;
} // namespace Rfid
} // namespace Events
} // namespace EnergyEvse
namespace DoorLock {
namespace Events {
namespace DoorLockAlarm {
static constexpr EventId Id = 0x00000000;
} // namespace DoorLockAlarm
namespace DoorStateChange {
static constexpr EventId Id = 0x00000001;
} // namespace DoorStateChange
namespace LockOperation {
static constexpr EventId Id = 0x00000002;
} // namespace LockOperation
namespace LockOperationError {
static constexpr EventId Id = 0x00000003;
} // namespace LockOperationError
namespace LockUserChange {
static constexpr EventId Id = 0x00000004;
} // namespace LockUserChange
} // namespace Events
} // namespace DoorLock
namespace PumpConfigurationAndControl {
namespace Events {
namespace SupplyVoltageLow {
static constexpr EventId Id = 0x00000000;
} // namespace SupplyVoltageLow
namespace SupplyVoltageHigh {
static constexpr EventId Id = 0x00000001;
} // namespace SupplyVoltageHigh
namespace PowerMissingPhase {
static constexpr EventId Id = 0x00000002;
} // namespace PowerMissingPhase
namespace SystemPressureLow {
static constexpr EventId Id = 0x00000003;
} // namespace SystemPressureLow
namespace SystemPressureHigh {
static constexpr EventId Id = 0x00000004;
} // namespace SystemPressureHigh
namespace DryRunning {
static constexpr EventId Id = 0x00000005;
} // namespace DryRunning
namespace MotorTemperatureHigh {
static constexpr EventId Id = 0x00000006;
} // namespace MotorTemperatureHigh
namespace PumpMotorFatalFailure {
static constexpr EventId Id = 0x00000007;
} // namespace PumpMotorFatalFailure
namespace ElectronicTemperatureHigh {
static constexpr EventId Id = 0x00000008;
} // namespace ElectronicTemperatureHigh
namespace PumpBlocked {
static constexpr EventId Id = 0x00000009;
} // namespace PumpBlocked
namespace SensorFailure {
static constexpr EventId Id = 0x0000000A;
} // namespace SensorFailure
namespace ElectronicNonFatalFailure {
static constexpr EventId Id = 0x0000000B;
} // namespace ElectronicNonFatalFailure
namespace ElectronicFatalFailure {
static constexpr EventId Id = 0x0000000C;
} // namespace ElectronicFatalFailure
namespace GeneralFault {
static constexpr EventId Id = 0x0000000D;
} // namespace GeneralFault
namespace Leakage {
static constexpr EventId Id = 0x0000000E;
} // namespace Leakage
namespace AirDetection {
static constexpr EventId Id = 0x0000000F;
} // namespace AirDetection
namespace TurbineOperation {
static constexpr EventId Id = 0x00000010;
} // namespace TurbineOperation
} // namespace Events
} // namespace PumpConfigurationAndControl
namespace OccupancySensing {
namespace Events {
namespace OccupancyChanged {
static constexpr EventId Id = 0x00000000;
} // namespace OccupancyChanged
} // namespace Events
} // namespace OccupancySensing
namespace TargetNavigator {
namespace Events {
namespace TargetUpdated {
static constexpr EventId Id = 0x00000000;
} // namespace TargetUpdated
} // namespace Events
} // namespace TargetNavigator
namespace MediaPlayback {
namespace Events {
namespace StateChanged {
static constexpr EventId Id = 0x00000000;
} // namespace StateChanged
} // namespace Events
} // namespace MediaPlayback
namespace AccountLogin {
namespace Events {
namespace LoggedOut {
static constexpr EventId Id = 0x00000000;
} // namespace LoggedOut
} // namespace Events
} // namespace AccountLogin
namespace ContentControl {
namespace Events {
namespace RemainingScreenTimeExpired {
static constexpr EventId Id = 0x00000000;
} // namespace RemainingScreenTimeExpired
} // namespace Events
} // namespace ContentControl
namespace CommissionerControl {
namespace Events {
namespace CommissioningRequestResult {
static constexpr EventId Id = 0x00000000;
} // namespace CommissioningRequestResult
} // namespace Events
} // namespace CommissionerControl
namespace UnitTesting {
namespace Events {
namespace TestEvent {
static constexpr EventId Id = 0x00000001;
} // namespace TestEvent
namespace TestFabricScopedEvent {
static constexpr EventId Id = 0x00000002;
} // namespace TestFabricScopedEvent
namespace TestDifferentVendorMeiEvent {
static constexpr EventId Id = 0xFFF200EE;
} // namespace TestDifferentVendorMeiEvent
} // namespace Events
} // namespace UnitTesting
namespace SampleMei {
namespace Events {
namespace PingCountEvent {
static constexpr EventId Id = 0x00000000;
} // namespace PingCountEvent
} // namespace Events
} // namespace SampleMei
} // namespace Clusters
} // namespace app
} // namespace chip

View File

@@ -0,0 +1,44 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
#pragma once
void MatterIdentifyPluginServerInitCallback();
void MatterGroupsPluginServerInitCallback();
void MatterOnOffPluginServerInitCallback();
void MatterLevelControlPluginServerInitCallback();
void MatterDescriptorPluginServerInitCallback();
void MatterAccessControlPluginServerInitCallback();
void MatterBasicInformationPluginServerInitCallback();
void MatterOtaSoftwareUpdateRequestorPluginServerInitCallback();
void MatterLocalizationConfigurationPluginServerInitCallback();
void MatterTimeFormatLocalizationPluginServerInitCallback();
void MatterGeneralCommissioningPluginServerInitCallback();
void MatterNetworkCommissioningPluginServerInitCallback();
void MatterGeneralDiagnosticsPluginServerInitCallback();
void MatterSoftwareDiagnosticsPluginServerInitCallback();
void MatterThreadNetworkDiagnosticsPluginServerInitCallback();
void MatterWiFiNetworkDiagnosticsPluginServerInitCallback();
void MatterAdministratorCommissioningPluginServerInitCallback();
void MatterOperationalCredentialsPluginServerInitCallback();
void MatterGroupKeyManagementPluginServerInitCallback();
void MatterFixedLabelPluginServerInitCallback();
void MatterScenesManagementPluginServerInitCallback();
#define MATTER_PLUGINS_INIT MatterIdentifyPluginServerInitCallback(); MatterGroupsPluginServerInitCallback(); MatterOnOffPluginServerInitCallback(); MatterLevelControlPluginServerInitCallback(); MatterDescriptorPluginServerInitCallback(); MatterAccessControlPluginServerInitCallback(); MatterBasicInformationPluginServerInitCallback(); MatterOtaSoftwareUpdateRequestorPluginServerInitCallback(); MatterLocalizationConfigurationPluginServerInitCallback(); MatterTimeFormatLocalizationPluginServerInitCallback(); MatterGeneralCommissioningPluginServerInitCallback(); MatterNetworkCommissioningPluginServerInitCallback(); MatterGeneralDiagnosticsPluginServerInitCallback(); MatterSoftwareDiagnosticsPluginServerInitCallback(); MatterThreadNetworkDiagnosticsPluginServerInitCallback(); MatterWiFiNetworkDiagnosticsPluginServerInitCallback(); MatterAdministratorCommissioningPluginServerInitCallback(); MatterOperationalCredentialsPluginServerInitCallback(); MatterGroupKeyManagementPluginServerInitCallback(); MatterFixedLabelPluginServerInitCallback(); MatterScenesManagementPluginServerInitCallback();

View File

@@ -0,0 +1,114 @@
#include <app-common/zap-generated/callback.h>
using namespace chip;
void __attribute__((weak)) emberAfAccessControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfAdministratorCommissioningClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfBasicInformationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfDescriptorClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfFixedLabelClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfGeneralCommissioningClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfGeneralDiagnosticsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfGroupKeyManagementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfGroupsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfIdentifyClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfLevelControlClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfLocalizationConfigurationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfNetworkCommissioningClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfOtaSoftwareUpdateProviderClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfOtaSoftwareUpdateRequestorClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfOnOffClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfOperationalCredentialsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfScenesManagementClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfSoftwareDiagnosticsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfThreadNetworkDiagnosticsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfTimeFormatLocalizationClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}
void __attribute__((weak)) emberAfWiFiNetworkDiagnosticsClusterInitCallback(EndpointId endpoint)
{
// To prevent warning
(void) endpoint;
}

View File

@@ -0,0 +1,83 @@
#include <app-common/zap-generated/callback.h>
#include <app-common/zap-generated/ids/Clusters.h>
#include <lib/support/Span.h>
#include <protocols/interaction_model/Constants.h>
using namespace chip;
// Cluster Init Functions
void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)
{
switch (clusterId)
{
case app::Clusters::AccessControl::Id:
emberAfAccessControlClusterInitCallback(endpoint);
break;
case app::Clusters::AdministratorCommissioning::Id:
emberAfAdministratorCommissioningClusterInitCallback(endpoint);
break;
case app::Clusters::BasicInformation::Id:
emberAfBasicInformationClusterInitCallback(endpoint);
break;
case app::Clusters::Descriptor::Id:
emberAfDescriptorClusterInitCallback(endpoint);
break;
case app::Clusters::FixedLabel::Id:
emberAfFixedLabelClusterInitCallback(endpoint);
break;
case app::Clusters::GeneralCommissioning::Id:
emberAfGeneralCommissioningClusterInitCallback(endpoint);
break;
case app::Clusters::GeneralDiagnostics::Id:
emberAfGeneralDiagnosticsClusterInitCallback(endpoint);
break;
case app::Clusters::GroupKeyManagement::Id:
emberAfGroupKeyManagementClusterInitCallback(endpoint);
break;
case app::Clusters::Groups::Id:
emberAfGroupsClusterInitCallback(endpoint);
break;
case app::Clusters::Identify::Id:
emberAfIdentifyClusterInitCallback(endpoint);
break;
case app::Clusters::LevelControl::Id:
emberAfLevelControlClusterInitCallback(endpoint);
break;
case app::Clusters::LocalizationConfiguration::Id:
emberAfLocalizationConfigurationClusterInitCallback(endpoint);
break;
case app::Clusters::NetworkCommissioning::Id:
emberAfNetworkCommissioningClusterInitCallback(endpoint);
break;
case app::Clusters::OtaSoftwareUpdateProvider::Id:
emberAfOtaSoftwareUpdateProviderClusterInitCallback(endpoint);
break;
case app::Clusters::OtaSoftwareUpdateRequestor::Id:
emberAfOtaSoftwareUpdateRequestorClusterInitCallback(endpoint);
break;
case app::Clusters::OnOff::Id:
emberAfOnOffClusterInitCallback(endpoint);
break;
case app::Clusters::OperationalCredentials::Id:
emberAfOperationalCredentialsClusterInitCallback(endpoint);
break;
case app::Clusters::ScenesManagement::Id:
emberAfScenesManagementClusterInitCallback(endpoint);
break;
case app::Clusters::SoftwareDiagnostics::Id:
emberAfSoftwareDiagnosticsClusterInitCallback(endpoint);
break;
case app::Clusters::ThreadNetworkDiagnostics::Id:
emberAfThreadNetworkDiagnosticsClusterInitCallback(endpoint);
break;
case app::Clusters::TimeFormatLocalization::Id:
emberAfTimeFormatLocalizationClusterInitCallback(endpoint);
break;
case app::Clusters::WiFiNetworkDiagnostics::Id:
emberAfWiFiNetworkDiagnosticsClusterInitCallback(endpoint);
break;
default:
// Unrecognized cluster ID
break;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,897 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
// Prevent multiple inclusion
#pragma once
#include <lib/core/CHIPConfig.h>
#include <app/util/endpoint-config-defines.h>
// Default values for the attributes longer than a pointer,
// in a form of a binary blob
// Separate block is generated for big-endian and little-endian cases.
#if CHIP_CONFIG_BIG_ENDIAN_TARGET
#define GENERATED_DEFAULTS { \
\
/* Endpoint: 0, Cluster: Localization Configuration (server), big-endian */\
\
/* 0 - ActiveLocale, */\
5, 'e', 'n', '-', 'U', 'S', \
\
\
/* Endpoint: 0, Cluster: General Commissioning (server), big-endian */\
\
/* 6 - Breadcrumb, */\
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
\
}
#else // !CHIP_CONFIG_BIG_ENDIAN_TARGET
#define GENERATED_DEFAULTS { \
\
/* Endpoint: 0, Cluster: Localization Configuration (server), little-endian */\
\
/* 0 - ActiveLocale, */\
5, 'e', 'n', '-', 'U', 'S', \
\
\
/* Endpoint: 0, Cluster: General Commissioning (server), little-endian */\
\
/* 6 - Breadcrumb, */\
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
\
}
#endif // CHIP_CONFIG_BIG_ENDIAN_TARGET
#define GENERATED_DEFAULTS_COUNT (2)
// This is an array of EmberAfAttributeMinMaxValue structures.
#define GENERATED_MIN_MAX_DEFAULT_COUNT 3
#define GENERATED_MIN_MAX_DEFAULTS { \
\
/* Endpoint: 1, Cluster: On/Off (server) */ \
{ (uint16_t)0xFF, (uint16_t)0x0, (uint16_t)0x2 }, /* StartUpOnOff */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
{ (uint16_t)0x0, (uint16_t)0x0, (uint16_t)0x3 }, /* Options */ \
{ (uint16_t)0x32, (uint16_t)0x1, (uint16_t)0xFF } /* DefaultMoveRate */ \
}
// This is an array of EmberAfAttributeMetadata structures.
#define GENERATED_ATTRIBUTE_COUNT 228
#define GENERATED_ATTRIBUTES { \
\
/* Endpoint: 0, Cluster: Descriptor (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* DeviceTypeList */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ServerList */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClientList */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* PartsList */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FeatureMap */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFD, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Access Control (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* ACL */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* Extension */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SubjectsPerAccessControlEntry */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TargetsPerAccessControlEntry */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* AccessControlEntriesPerFabric */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFD, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Basic Information (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* DataModelRevision */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 33, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* VendorName */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 2, ZAP_TYPE(VENDOR_ID), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* VendorID */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 33, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* ProductName */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* ProductID */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000005, 33, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* NodeLabel */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000006, 3, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* Location */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000007, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* HardwareVersion */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000008, 65, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* HardwareVersionString */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000009, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* SoftwareVersion */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000A, 65, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* SoftwareVersionString */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000B, 17, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* ManufacturingDate */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000C, 33, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* PartNumber */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000D, 258, ZAP_TYPE(LONG_CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* ProductURL */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000E, 65, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* ProductLabel */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000F, 33, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* SerialNumber */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x00000010, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* LocalConfigDisabled */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x00000011, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* Reachable */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000012, 33, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* UniqueID */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000013, 0, ZAP_TYPE(STRUCT), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CapabilityMinima */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000015, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* SpecificationVersion */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000016, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* MaxPathsPerInvoke */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(3), 0x0000FFFD, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(SINGLETON) }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* DefaultOTAProviders */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x00000001, 1, ZAP_TYPE(BOOLEAN), 0 }, /* UpdatePossible */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x00000002, 1, ZAP_TYPE(ENUM8), 0 }, /* UpdateState */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x00000003, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* UpdateStateProgress */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Localization Configuration (server) */ \
{ ZAP_LONG_DEFAULTS_INDEX(0), 0x00000000, 36, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* ActiveLocale */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SupportedLocales */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Time Format Localization (server) */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x00000000, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* HourFormat */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x00000001, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* ActiveCalendarType */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SupportedCalendarTypes */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: General Commissioning (server) */ \
{ ZAP_LONG_DEFAULTS_INDEX(6), 0x00000000, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* Breadcrumb */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(STRUCT), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* BasicCommissioningInfo */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RegulatoryConfig */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* LocationCapability */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SupportsConcurrentConnection */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Network Commissioning (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(INT8U), 0 }, /* MaxNetworks */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* Networks */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 1, ZAP_TYPE(INT8U), 0 }, /* ScanMaxTimeSeconds */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 1, ZAP_TYPE(INT8U), 0 }, /* ConnectMaxTimeSeconds */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* InterfaceEnabled */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000005, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* LastNetworkingStatus */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000006, 33, ZAP_TYPE(OCTET_STRING), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* LastNetworkID */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000007, 4, ZAP_TYPE(INT32S), ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* LastConnectErrorValue */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000008, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SupportedWiFiBands */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000009, 2, ZAP_TYPE(BITMAP16), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SupportedThreadFeatures */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000A, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ThreadVersion */ \
{ ZAP_SIMPLE_DEFAULT(2), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: General Diagnostics (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* NetworkInterfaces */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RebootCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* UpTime */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TotalOperationalHours */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* BootReason */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000005, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ActiveHardwareFaults */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000006, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ActiveRadioFaults */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000007, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ActiveNetworkFaults */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000008, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TestEventTriggersEnabled */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FeatureMap */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFD, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ThreadMetrics */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentHeapFree */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentHeapUsed */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentHeapHighWatermark */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* Channel */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* RoutingRole */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 17, ZAP_TYPE(CHAR_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* NetworkName */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PanId */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* ExtendedPanId */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000005, 18, ZAP_TYPE(OCTET_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* MeshLocalPrefix */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000006, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* OverrunCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000007, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* NeighborTable */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000008, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RouteTable */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000009, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PartitionId */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000A, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* Weighting */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000B, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* DataVersion */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000C, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* StableDataVersion */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000D, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* LeaderRouterId */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000E, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* DetachedRoleCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000F, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ChildRoleCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000010, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RouterRoleCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000011, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* LeaderRoleCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000012, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* AttachAttemptCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000013, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* PartitionIdChangeCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000014, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* BetterPartitionAttachAttemptCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000015, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ParentChangeCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000016, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxTotalCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000017, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxUnicastCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000018, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxBroadcastCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000019, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxAckRequestedCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000001A, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxAckedCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000001B, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxNoAckRequestedCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000001C, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxDataCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000001D, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxDataPollCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000001E, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxBeaconCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000001F, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxBeaconRequestCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000020, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxOtherCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000021, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxRetryCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000022, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxDirectMaxRetryExpiryCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000023, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxIndirectMaxRetryExpiryCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000024, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxErrCcaCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000025, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxErrAbortCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000026, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TxErrBusyChannelCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000027, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxTotalCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000028, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxUnicastCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000029, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxBroadcastCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000002A, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxDataCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000002B, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxDataPollCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000002C, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxBeaconCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000002D, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxBeaconRequestCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000002E, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxOtherCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000002F, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxAddressFilteredCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000030, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxDestAddrFilteredCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000031, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxDuplicatedCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000032, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxErrNoFrameCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000033, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxErrUnknownNeighborCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000034, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxErrInvalidSrcAddrCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000035, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxErrSecCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000036, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxErrFcsCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000037, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* RxErrOtherCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000038, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* ActiveTimestamp */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000039, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PendingTimestamp */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000003A, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* Delay */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000003B, 0, ZAP_TYPE(STRUCT), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* SecurityPolicy */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000003C, 5, ZAP_TYPE(OCTET_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* ChannelPage0Mask */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000003D, 0, ZAP_TYPE(STRUCT), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* OperationalDatasetComponents */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000003E, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ActiveNetworkFaultsList */ \
{ ZAP_SIMPLE_DEFAULT(0x000F), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(2), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Wi-Fi Network Diagnostics (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 7, ZAP_TYPE(OCTET_STRING), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* BSSID */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* SecurityType */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* WiFiVersion */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* ChannelNumber */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 1, ZAP_TYPE(INT8S), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* RSSI */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000005, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* BeaconLostCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000006, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* BeaconRxCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000007, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PacketMulticastRxCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000008, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PacketMulticastTxCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000009, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PacketUnicastRxCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000A, 4, ZAP_TYPE(INT32U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* PacketUnicastTxCount */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000B, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* CurrentMaxRate */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000000C, 8, ZAP_TYPE(INT64U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* OverrunCount */ \
{ ZAP_SIMPLE_DEFAULT(3), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Administrator Commissioning (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* WindowStatus */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 1, ZAP_TYPE(FABRIC_IDX), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* AdminFabricIndex */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 2, ZAP_TYPE(VENDOR_ID), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* AdminVendorId */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Operational Credentials (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* NOCs */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* Fabrics */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* SupportedFabrics */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CommissionedFabrics */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000004, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* TrustedRootCertificates */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000005, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentFabricIndex */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Group Key Management (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* GroupKeyMap */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* GroupTable */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* MaxGroupsPerFabric */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* MaxGroupKeysPerFabric */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FeatureMap */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFD, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClusterRevision */ \
\
/* Endpoint: 0, Cluster: Fixed Label (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* LabelList */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Identify (server) */ \
{ ZAP_SIMPLE_DEFAULT(0x0000), 0x00000000, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* IdentifyTime */ \
{ ZAP_SIMPLE_DEFAULT(0x0), 0x00000001, 1, ZAP_TYPE(ENUM8), 0 }, /* IdentifyType */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(4), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Groups (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 1, ZAP_TYPE(BITMAP8), 0 }, /* NameSupport */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(4), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: On/Off (server) */ \
{ ZAP_SIMPLE_DEFAULT(0x00), 0x00000000, 1, ZAP_TYPE(BOOLEAN), ZAP_ATTRIBUTE_MASK(TOKENIZE) }, /* OnOff */ \
{ ZAP_SIMPLE_DEFAULT(0x01), 0x00004000, 1, ZAP_TYPE(BOOLEAN), 0 }, /* GlobalSceneControl */ \
{ ZAP_SIMPLE_DEFAULT(0x0000), 0x00004001, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* OnTime */ \
{ ZAP_SIMPLE_DEFAULT(0x0000), 0x00004002, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* OffWaitTime */ \
{ ZAP_MIN_MAX_DEFAULTS_INDEX(0), 0x00004003, 1, ZAP_TYPE(ENUM8), ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* StartUpOnOff */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(6), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Level Control (server) */ \
{ ZAP_SIMPLE_DEFAULT(0xFE), 0x00000000, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* CurrentLevel */ \
{ ZAP_SIMPLE_DEFAULT(0x0000), 0x00000001, 2, ZAP_TYPE(INT16U), 0 }, /* RemainingTime */ \
{ ZAP_SIMPLE_DEFAULT(0x01), 0x00000002, 1, ZAP_TYPE(INT8U), 0 }, /* MinLevel */ \
{ ZAP_SIMPLE_DEFAULT(0xFE), 0x00000003, 1, ZAP_TYPE(INT8U), 0 }, /* MaxLevel */ \
{ ZAP_MIN_MAX_DEFAULTS_INDEX(1), 0x0000000F, 1, ZAP_TYPE(BITMAP8), ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* Options */ \
{ ZAP_SIMPLE_DEFAULT(0x0000), 0x00000010, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(WRITABLE) }, /* OnOffTransitionTime */ \
{ ZAP_SIMPLE_DEFAULT(0xFF), 0x00000011, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* OnLevel */ \
{ ZAP_SIMPLE_DEFAULT(0xFFFF), 0x00000012, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* OnTransitionTime */ \
{ ZAP_SIMPLE_DEFAULT(0xFFFF), 0x00000013, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* OffTransitionTime */ \
{ ZAP_MIN_MAX_DEFAULTS_INDEX(2), 0x00000014, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* DefaultMoveRate */ \
{ ZAP_SIMPLE_DEFAULT(0xFF), 0x00004000, 1, ZAP_TYPE(INT8U), ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE) | ZAP_ATTRIBUTE_MASK(NULLABLE) }, /* StartUpCurrentLevel */ \
{ ZAP_SIMPLE_DEFAULT(3), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(5), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Descriptor (server) */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* DeviceTypeList */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000001, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ServerList */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClientList */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000003, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* PartsList */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FeatureMap */ \
{ ZAP_EMPTY_DEFAULT(), 0x0000FFFD, 2, ZAP_TYPE(INT16U), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClusterRevision */ \
\
/* Endpoint: 1, Cluster: Scenes Management (server) */ \
{ ZAP_SIMPLE_DEFAULT(16), 0x00000001, 2, ZAP_TYPE(INT16U), 0 }, /* SceneTableSize */ \
{ ZAP_EMPTY_DEFAULT(), 0x00000002, 0, ZAP_TYPE(ARRAY), ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FabricSceneInfo */ \
{ ZAP_SIMPLE_DEFAULT(0), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), 0 }, /* FeatureMap */ \
{ ZAP_SIMPLE_DEFAULT(1), 0x0000FFFD, 2, ZAP_TYPE(INT16U), 0 }, /* ClusterRevision */ \
}
// clang-format off
#define GENERATED_EVENT_COUNT 0
#define GENERATED_EVENTS { \
}
// clang-format on
// Cluster function static arrays
#define GENERATED_FUNCTION_ARRAYS \
const EmberAfGenericClusterFunction chipFuncArrayLocalizationConfigurationServer[] = {\
(EmberAfGenericClusterFunction) emberAfLocalizationConfigurationClusterServerInitCallback,\
(EmberAfGenericClusterFunction) MatterLocalizationConfigurationClusterServerPreAttributeChangedCallback,\
};\
const EmberAfGenericClusterFunction chipFuncArrayTimeFormatLocalizationServer[] = {\
(EmberAfGenericClusterFunction) emberAfTimeFormatLocalizationClusterServerInitCallback,\
(EmberAfGenericClusterFunction) MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback,\
};\
const EmberAfGenericClusterFunction chipFuncArrayIdentifyServer[] = {\
(EmberAfGenericClusterFunction) emberAfIdentifyClusterServerInitCallback,\
(EmberAfGenericClusterFunction) MatterIdentifyClusterServerAttributeChangedCallback,\
};\
const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = {\
(EmberAfGenericClusterFunction) emberAfGroupsClusterServerInitCallback,\
};\
const EmberAfGenericClusterFunction chipFuncArrayOnOffServer[] = {\
(EmberAfGenericClusterFunction) emberAfOnOffClusterServerInitCallback,\
(EmberAfGenericClusterFunction) MatterOnOffClusterServerShutdownCallback,\
};\
const EmberAfGenericClusterFunction chipFuncArrayLevelControlServer[] = {\
(EmberAfGenericClusterFunction) emberAfLevelControlClusterServerInitCallback,\
(EmberAfGenericClusterFunction) MatterLevelControlClusterServerShutdownCallback,\
};\
const EmberAfGenericClusterFunction chipFuncArrayScenesManagementServer[] = {\
(EmberAfGenericClusterFunction) emberAfScenesManagementClusterServerInitCallback,\
(EmberAfGenericClusterFunction) MatterScenesManagementClusterServerShutdownCallback,\
};\
// clang-format off
#define GENERATED_COMMANDS { \
/* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */\
/* AcceptedCommandList (index=0) */ \
0x00000000 /* AnnounceOTAProvider */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: General Commissioning (server) */\
/* AcceptedCommandList (index=2) */ \
0x00000000 /* ArmFailSafe */, \
0x00000002 /* SetRegulatoryConfig */, \
0x00000004 /* CommissioningComplete */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=6)*/ \
0x00000001 /* ArmFailSafeResponse */, \
0x00000003 /* SetRegulatoryConfigResponse */, \
0x00000005 /* CommissioningCompleteResponse */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Network Commissioning (server) */\
/* AcceptedCommandList (index=10) */ \
0x00000000 /* ScanNetworks */, \
0x00000002 /* AddOrUpdateWiFiNetwork */, \
0x00000003 /* AddOrUpdateThreadNetwork */, \
0x00000004 /* RemoveNetwork */, \
0x00000006 /* ConnectNetwork */, \
0x00000008 /* ReorderNetwork */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=17)*/ \
0x00000001 /* ScanNetworksResponse */, \
0x00000005 /* NetworkConfigResponse */, \
0x00000007 /* ConnectNetworkResponse */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: General Diagnostics (server) */\
/* AcceptedCommandList (index=21) */ \
0x00000000 /* TestEventTrigger */, \
0x00000001 /* TimeSnapshot */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=24)*/ \
0x00000002 /* TimeSnapshotResponse */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Software Diagnostics (server) */\
/* AcceptedCommandList (index=26) */ \
0x00000000 /* ResetWatermarks */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\
/* AcceptedCommandList (index=28) */ \
0x00000000 /* ResetCounts */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Wi-Fi Network Diagnostics (server) */\
/* AcceptedCommandList (index=30) */ \
0x00000000 /* ResetCounts */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Administrator Commissioning (server) */\
/* AcceptedCommandList (index=32) */ \
0x00000000 /* OpenCommissioningWindow */, \
0x00000001 /* OpenBasicCommissioningWindow */, \
0x00000002 /* RevokeCommissioning */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Operational Credentials (server) */\
/* AcceptedCommandList (index=36) */ \
0x00000000 /* AttestationRequest */, \
0x00000002 /* CertificateChainRequest */, \
0x00000004 /* CSRRequest */, \
0x00000006 /* AddNOC */, \
0x00000007 /* UpdateNOC */, \
0x00000009 /* UpdateFabricLabel */, \
0x0000000A /* RemoveFabric */, \
0x0000000B /* AddTrustedRootCertificate */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=45)*/ \
0x00000001 /* AttestationResponse */, \
0x00000003 /* CertificateChainResponse */, \
0x00000005 /* CSRResponse */, \
0x00000008 /* NOCResponse */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 0, Cluster: Group Key Management (server) */\
/* AcceptedCommandList (index=50) */ \
0x00000000 /* KeySetWrite */, \
0x00000001 /* KeySetRead */, \
0x00000003 /* KeySetRemove */, \
0x00000004 /* KeySetReadAllIndices */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=55)*/ \
0x00000002 /* KeySetReadResponse */, \
0x00000005 /* KeySetReadAllIndicesResponse */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Identify (server) */\
/* AcceptedCommandList (index=58) */ \
0x00000000 /* Identify */, \
0x00000040 /* TriggerEffect */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Groups (server) */\
/* AcceptedCommandList (index=61) */ \
0x00000000 /* AddGroup */, \
0x00000001 /* ViewGroup */, \
0x00000002 /* GetGroupMembership */, \
0x00000003 /* RemoveGroup */, \
0x00000004 /* RemoveAllGroups */, \
0x00000005 /* AddGroupIfIdentifying */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=68)*/ \
0x00000000 /* AddGroupResponse */, \
0x00000001 /* ViewGroupResponse */, \
0x00000002 /* GetGroupMembershipResponse */, \
0x00000003 /* RemoveGroupResponse */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: On/Off (server) */\
/* AcceptedCommandList (index=73) */ \
0x00000000 /* Off */, \
0x00000001 /* On */, \
0x00000002 /* Toggle */, \
0x00000040 /* OffWithEffect */, \
0x00000041 /* OnWithRecallGlobalScene */, \
0x00000042 /* OnWithTimedOff */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Level Control (server) */\
/* AcceptedCommandList (index=80) */ \
0x00000000 /* MoveToLevel */, \
0x00000001 /* Move */, \
0x00000002 /* Step */, \
0x00000003 /* Stop */, \
0x00000004 /* MoveToLevelWithOnOff */, \
0x00000005 /* MoveWithOnOff */, \
0x00000006 /* StepWithOnOff */, \
0x00000007 /* StopWithOnOff */, \
chip::kInvalidCommandId /* end of list */, \
/* Endpoint: 1, Cluster: Scenes Management (server) */\
/* AcceptedCommandList (index=89) */ \
0x00000000 /* AddScene */, \
0x00000001 /* ViewScene */, \
0x00000002 /* RemoveScene */, \
0x00000003 /* RemoveAllScenes */, \
0x00000004 /* StoreScene */, \
0x00000005 /* RecallScene */, \
0x00000006 /* GetSceneMembership */, \
chip::kInvalidCommandId /* end of list */, \
/* GeneratedCommandList (index=97)*/ \
0x00000000 /* AddSceneResponse */, \
0x00000001 /* ViewSceneResponse */, \
0x00000002 /* RemoveSceneResponse */, \
0x00000003 /* RemoveAllScenesResponse */, \
0x00000004 /* StoreSceneResponse */, \
0x00000006 /* GetSceneMembershipResponse */, \
chip::kInvalidCommandId /* end of list */, \
}
// clang-format on
// This is an array of EmberAfCluster structures.
#define GENERATED_CLUSTER_COUNT 23
// clang-format off
#define GENERATED_CLUSTERS { \
{ \
/* Endpoint: 0, Cluster: Descriptor (server) */ \
.clusterId = 0x0000001D, \
.attributes = ZAP_ATTRIBUTE_INDEX(0), \
.attributeCount = 6, \
.clusterSize = 0, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Access Control (server) */ \
.clusterId = 0x0000001F, \
.attributes = ZAP_ATTRIBUTE_INDEX(6), \
.attributeCount = 7, \
.clusterSize = 4, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Basic Information (server) */ \
.clusterId = 0x00000028, \
.attributes = ZAP_ATTRIBUTE_INDEX(13), \
.attributeCount = 24, \
.clusterSize = 41, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: OTA Software Update Provider (client) */ \
.clusterId = 0x00000029, \
.attributes = ZAP_ATTRIBUTE_INDEX(37), \
.attributeCount = 0, \
.clusterSize = 0, \
.mask = ZAP_CLUSTER_MASK(CLIENT), \
.functions = NULL, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
.clusterId = 0x0000002A, \
.attributes = ZAP_ATTRIBUTE_INDEX(37), \
.attributeCount = 6, \
.clusterSize = 9, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 0 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Localization Configuration (server) */ \
.clusterId = 0x0000002B, \
.attributes = ZAP_ATTRIBUTE_INDEX(43), \
.attributeCount = 4, \
.clusterSize = 42, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
.functions = chipFuncArrayLocalizationConfigurationServer, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Time Format Localization (server) */ \
.clusterId = 0x0000002C, \
.attributes = ZAP_ATTRIBUTE_INDEX(47), \
.attributeCount = 5, \
.clusterSize = 8, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
.functions = chipFuncArrayTimeFormatLocalizationServer, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: General Commissioning (server) */ \
.clusterId = 0x00000030, \
.attributes = ZAP_ATTRIBUTE_INDEX(52), \
.attributeCount = 7, \
.clusterSize = 14, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 2 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 6 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Network Commissioning (server) */ \
.clusterId = 0x00000031, \
.attributes = ZAP_ATTRIBUTE_INDEX(59), \
.attributeCount = 13, \
.clusterSize = 48, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 10 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 17 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: General Diagnostics (server) */ \
.clusterId = 0x00000033, \
.attributes = ZAP_ATTRIBUTE_INDEX(72), \
.attributeCount = 11, \
.clusterSize = 0, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 21 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 24 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
.clusterId = 0x00000034, \
.attributes = ZAP_ATTRIBUTE_INDEX(83), \
.attributeCount = 6, \
.clusterSize = 2, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 26 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
.clusterId = 0x00000035, \
.attributes = ZAP_ATTRIBUTE_INDEX(89), \
.attributeCount = 65, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 28 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Wi-Fi Network Diagnostics (server) */ \
.clusterId = 0x00000036, \
.attributes = ZAP_ATTRIBUTE_INDEX(154), \
.attributeCount = 15, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 30 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Administrator Commissioning (server) */ \
.clusterId = 0x0000003C, \
.attributes = ZAP_ATTRIBUTE_INDEX(169), \
.attributeCount = 5, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 32 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Operational Credentials (server) */ \
.clusterId = 0x0000003E, \
.attributes = ZAP_ATTRIBUTE_INDEX(174), \
.attributeCount = 8, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 36 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 45 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Group Key Management (server) */ \
.clusterId = 0x0000003F, \
.attributes = ZAP_ATTRIBUTE_INDEX(182), \
.attributeCount = 6, \
.clusterSize = 0, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 50 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 55 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 0, Cluster: Fixed Label (server) */ \
.clusterId = 0x00000040, \
.attributes = ZAP_ATTRIBUTE_INDEX(188), \
.attributeCount = 3, \
.clusterSize = 6, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 1, Cluster: Identify (server) */ \
.clusterId = 0x00000003, \
.attributes = ZAP_ATTRIBUTE_INDEX(191), \
.attributeCount = 4, \
.clusterSize = 9, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
.functions = chipFuncArrayIdentifyServer, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 58 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 1, Cluster: Groups (server) */ \
.clusterId = 0x00000004, \
.attributes = ZAP_ATTRIBUTE_INDEX(195), \
.attributeCount = 3, \
.clusterSize = 7, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
.functions = chipFuncArrayGroupsServer, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 61 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 68 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 1, Cluster: On/Off (server) */ \
.clusterId = 0x00000006, \
.attributes = ZAP_ATTRIBUTE_INDEX(198), \
.attributeCount = 7, \
.clusterSize = 13, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
.functions = chipFuncArrayOnOffServer, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 73 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 1, Cluster: Level Control (server) */ \
.clusterId = 0x00000008, \
.attributes = ZAP_ATTRIBUTE_INDEX(205), \
.attributeCount = 13, \
.clusterSize = 21, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
.functions = chipFuncArrayLevelControlServer, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 80 ), \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 1, Cluster: Descriptor (server) */ \
.clusterId = 0x0000001D, \
.attributes = ZAP_ATTRIBUTE_INDEX(218), \
.attributeCount = 6, \
.clusterSize = 0, \
.mask = ZAP_CLUSTER_MASK(SERVER), \
.functions = NULL, \
.acceptedCommandList = nullptr, \
.generatedCommandList = nullptr, \
.eventList = nullptr, \
.eventCount = 0, \
},\
{ \
/* Endpoint: 1, Cluster: Scenes Management (server) */ \
.clusterId = 0x00000062, \
.attributes = ZAP_ATTRIBUTE_INDEX(224), \
.attributeCount = 4, \
.clusterSize = 8, \
.mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \
.functions = chipFuncArrayScenesManagementServer, \
.acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 89 ), \
.generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 97 ), \
.eventList = nullptr, \
.eventCount = 0, \
},\
}
// clang-format on
#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 22
// This is an array of EmberAfEndpointType structures.
#define GENERATED_ENDPOINT_TYPES { \
{ ZAP_CLUSTER_INDEX(0), 17, 198 }, \
{ ZAP_CLUSTER_INDEX(17), 6, 58 }, \
}
// Largest attribute size is needed for various buffers
#define ATTRIBUTE_LARGEST (259)
static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE,
"ATTRIBUTE_LARGEST larger than expected");
// Total size of singleton attributes
#define ATTRIBUTE_SINGLETONS_SIZE (37)
// Total size of attribute storage
#define ATTRIBUTE_MAX_SIZE (256)
// Number of fixed endpoints
#define FIXED_ENDPOINT_COUNT (2)
// Array of endpoints that are supported, the data inside
// the array is the endpoint number.
#define FIXED_ENDPOINT_ARRAY { 0x0000, 0x0001 }
// Array of profile ids
#define FIXED_PROFILE_IDS { 0x0103, 0x0103 }
// Array of device types
#define FIXED_DEVICE_TYPES {{0x00000016,1},{0x0000010B,2}}
// Array of device type offsets
#define FIXED_DEVICE_TYPE_OFFSETS { 0,1}
// Array of device type lengths
#define FIXED_DEVICE_TYPE_LENGTHS { 1,1}
// Array of endpoint types supported on each endpoint
#define FIXED_ENDPOINT_TYPES { 0, 1 }
// Array of parent endpoints for each endpoint
#define FIXED_PARENT_ENDPOINTS { kInvalidEndpointId, kInvalidEndpointId }

View File

@@ -0,0 +1,193 @@
/*
*
* Copyright (c) 2022 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// THIS FILE IS GENERATED BY ZAP
// Prevent multiple inclusion
#pragma once
/**** Cluster endpoint counts ****/
#define MATTER_DM_IDENTIFY_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_GROUPS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_ON_OFF_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_LEVEL_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_DESCRIPTOR_CLUSTER_SERVER_ENDPOINT_COUNT (2)
#define MATTER_DM_ACCESS_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_BASIC_INFORMATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER_CLIENT_ENDPOINT_COUNT (1)
#define MATTER_DM_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_GENERAL_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_NETWORK_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_GENERAL_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_SOFTWARE_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_FIXED_LABEL_CLUSTER_SERVER_ENDPOINT_COUNT (1)
#define MATTER_DM_SCENES_CLUSTER_SERVER_ENDPOINT_COUNT (1)
/**** Cluster Plugins ****/
// Use this macro to check if the server side of the Identify cluster is included
#define ZCL_USING_IDENTIFY_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_IDENTIFY_SERVER
#define MATTER_DM_PLUGIN_IDENTIFY
// Use this macro to check if the server side of the Groups cluster is included
#define ZCL_USING_GROUPS_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_GROUPS_SERVER
#define MATTER_DM_PLUGIN_GROUPS
// Use this macro to check if the server side of the On/Off cluster is included
#define ZCL_USING_ON_OFF_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_ON_OFF_SERVER
#define MATTER_DM_PLUGIN_ON_OFF
// Use this macro to check if the server side of the Level Control cluster is included
#define ZCL_USING_LEVEL_CONTROL_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_LEVEL_CONTROL_SERVER
#define MATTER_DM_PLUGIN_LEVEL_CONTROL
// User options for server plugin Level Control
#define MATTER_DM_PLUGIN_LEVEL_CONTROL_MAXIMUM_LEVEL 254
#define MATTER_DM_PLUGIN_LEVEL_CONTROL_MINIMUM_LEVEL 0
#define MATTER_DM_PLUGIN_LEVEL_CONTROL_RATE 0
// Use this macro to check if the server side of the Descriptor cluster is included
#define ZCL_USING_DESCRIPTOR_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_DESCRIPTOR_SERVER
#define MATTER_DM_PLUGIN_DESCRIPTOR
// Use this macro to check if the server side of the Access Control cluster is included
#define ZCL_USING_ACCESS_CONTROL_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_ACCESS_CONTROL_SERVER
#define MATTER_DM_PLUGIN_ACCESS_CONTROL
// Use this macro to check if the server side of the Basic Information cluster is included
#define ZCL_USING_BASIC_INFORMATION_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_BASIC_INFORMATION_SERVER
#define MATTER_DM_PLUGIN_BASIC_INFORMATION
// Use this macro to check if the client side of the OTA Software Update Provider cluster is included
#define ZCL_USING_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER_CLIENT
#define MATTER_DM_PLUGIN_OTA_SOFTWARE_UPDATE_PROVIDER_CLIENT
// Use this macro to check if the server side of the OTA Software Update Requestor cluster is included
#define ZCL_USING_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR_SERVER
#define MATTER_DM_PLUGIN_OTA_SOFTWARE_UPDATE_REQUESTOR
// Use this macro to check if the server side of the Localization Configuration cluster is included
#define ZCL_USING_LOCALIZATION_CONFIGURATION_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_LOCALIZATION_CONFIGURATION_SERVER
#define MATTER_DM_PLUGIN_LOCALIZATION_CONFIGURATION
// Use this macro to check if the server side of the Time Format Localization cluster is included
#define ZCL_USING_TIME_FORMAT_LOCALIZATION_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_TIME_FORMAT_LOCALIZATION_SERVER
#define MATTER_DM_PLUGIN_TIME_FORMAT_LOCALIZATION
// Use this macro to check if the server side of the General Commissioning cluster is included
#define ZCL_USING_GENERAL_COMMISSIONING_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_GENERAL_COMMISSIONING_SERVER
#define MATTER_DM_PLUGIN_GENERAL_COMMISSIONING
// Use this macro to check if the server side of the Network Commissioning cluster is included
#define ZCL_USING_NETWORK_COMMISSIONING_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_NETWORK_COMMISSIONING_SERVER
#define MATTER_DM_PLUGIN_NETWORK_COMMISSIONING
// Use this macro to check if the server side of the General Diagnostics cluster is included
#define ZCL_USING_GENERAL_DIAGNOSTICS_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_GENERAL_DIAGNOSTICS_SERVER
#define MATTER_DM_PLUGIN_GENERAL_DIAGNOSTICS
// Use this macro to check if the server side of the Software Diagnostics cluster is included
#define ZCL_USING_SOFTWARE_DIAGNOSTICS_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_SOFTWARE_DIAGNOSTICS_SERVER
#define MATTER_DM_PLUGIN_SOFTWARE_DIAGNOSTICS
// Use this macro to check if the server side of the Thread Network Diagnostics cluster is included
#define ZCL_USING_THREAD_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_THREAD_NETWORK_DIAGNOSTICS_SERVER
#define MATTER_DM_PLUGIN_THREAD_NETWORK_DIAGNOSTICS
// Use this macro to check if the server side of the Wi-Fi Network Diagnostics cluster is included
#define ZCL_USING_WIFI_NETWORK_DIAGNOSTICS_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS_SERVER
#define MATTER_DM_PLUGIN_WI_FI_NETWORK_DIAGNOSTICS
// Use this macro to check if the server side of the Administrator Commissioning cluster is included
#define ZCL_USING_ADMINISTRATOR_COMMISSIONING_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_ADMINISTRATOR_COMMISSIONING_SERVER
#define MATTER_DM_PLUGIN_ADMINISTRATOR_COMMISSIONING
// Use this macro to check if the server side of the Operational Credentials cluster is included
#define ZCL_USING_OPERATIONAL_CREDENTIALS_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_OPERATIONAL_CREDENTIALS_SERVER
#define MATTER_DM_PLUGIN_OPERATIONAL_CREDENTIALS
// Use this macro to check if the server side of the Group Key Management cluster is included
#define ZCL_USING_GROUP_KEY_MANAGEMENT_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_GROUP_KEY_MANAGEMENT_SERVER
#define MATTER_DM_PLUGIN_GROUP_KEY_MANAGEMENT
// Use this macro to check if the server side of the Fixed Label cluster is included
#define ZCL_USING_FIXED_LABEL_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_FIXED_LABEL_SERVER
#define MATTER_DM_PLUGIN_FIXED_LABEL
// Use this macro to check if the server side of the Scenes Management cluster is included
#define ZCL_USING_SCENES_CLUSTER_SERVER
#define MATTER_DM_PLUGIN_SCENES_MANAGEMENT_SERVER
#define MATTER_DM_PLUGIN_SCENES_MANAGEMENT
// User options for server plugin Scenes Management
// Cluster spec 1.4.8.7
#define SCENES_MANAGEMENT_TABLE_SIZE 16
// Scenes FeatureMap Attribute Toggle Scenes Name feature
// App cluster specs 1.4.4
#define MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK 0x0001
#define MATTER_CLUSTER_SCENE_NAME_SUPPORT (0x0000 & MATTER_CLUSTER_SCENE_NAME_SUPPORT_MASK)
// Scenes FeatureMap Table Size feature used for the SCENES_MANAGEMENT_TABLE_SIZE define
// App cluster specs 1.4.4.2
#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK 0x0001
#define MATTER_CLUSTER_TABLE_SIZE_SUPPORT (0x0000 & MATTER_CLUSTER_TABLE_SIZE_SUPPORT_MASK)