From 4eed31f09b86bdaa6472849574410ebd327908fb Mon Sep 17 00:00:00 2001 From: Shubham Patil Date: Fri, 26 Jul 2024 13:39:25 +0530 Subject: [PATCH] components/esp-matter: Remove redundunt if blocks from the cluster.cpp --- components/esp_matter/esp_matter_cluster.cpp | 479 +++++++------------ 1 file changed, 170 insertions(+), 309 deletions(-) diff --git a/components/esp_matter/esp_matter_cluster.cpp b/components/esp_matter/esp_matter_cluster.cpp index f665713cf..7c40cae7d 100644 --- a/components/esp_matter/esp_matter_cluster.cpp +++ b/components/esp_matter/esp_matter_cluster.cpp @@ -115,9 +115,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterDescriptorPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ attribute::create_device_list(cluster, NULL, 0, 0); attribute::create_server_list(cluster, NULL, 0, 0); @@ -126,10 +124,8 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes updated later */ global::attribute::create_feature_map(cluster, 0); - - - /* Attributes not managed internally */ - global::attribute::create_cluster_revision(cluster, cluster_revision); + /* Attributes not managed internally */ + global::attribute::create_cluster_revision(cluster, cluster_revision); } return cluster; @@ -151,9 +147,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { set_plugin_server_init_callback(cluster, NULL); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -186,9 +180,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterAccessControlPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ attribute::create_acl(cluster, NULL, 0, 0); attribute::create_subjects_per_access_control_entry(cluster, 0); @@ -198,7 +190,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes updated later */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -226,9 +217,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterBasicInformationPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); attribute::create_data_model_revision(cluster, 0); @@ -247,6 +236,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); + if (config) { attribute::create_node_label(cluster, config->node_label, strlen(config->node_label)); } else { @@ -276,12 +266,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterBindingPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - /* Extra initialization */ - client::binding_init(); - - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -291,6 +276,9 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + /* Extra initialization */ + client::binding_init(); + return cluster; } } /* binding */ @@ -311,13 +299,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterOtaSoftwareUpdateProviderPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -349,9 +334,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterOtaSoftwareUpdateRequestorPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -395,9 +378,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterGeneralCommissioningPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -443,9 +424,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterNetworkCommissioningPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ attribute::create_max_networks(cluster, 0); attribute::create_networks(cluster, NULL, 0, 0); @@ -464,7 +443,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) #endif global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -500,9 +478,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterGeneralDiagnosticsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ attribute::create_network_interfaces(cluster, NULL, 0, 0); attribute::create_reboot_count(cluster, 0); @@ -510,7 +486,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) attribute::create_test_event_triggers_enabled(cluster, 0); global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -541,9 +516,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterAdministratorCommissioningPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -584,9 +557,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterOperationalCredentialsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -635,9 +606,7 @@ cluster_t *create(endpoint_t *endpoint, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterGroupKeyManagementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -676,9 +645,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterWiFiNetworkDiagnosticsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -712,9 +679,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterThreadNetworkDiagnosticsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -792,16 +757,14 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto delegate_init_cb = TimeSynchronizationDelegateInitCB; set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } + static const auto plugin_server_init_cb = CALL_ONCE(MatterTimeSynchronizationPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -826,13 +789,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -861,15 +821,13 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { // There is not PluginServer(Client)InitCallback for this cluster add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); + if (config) { attribute::create_reachable(cluster, config->reachable); } else { @@ -894,6 +852,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ ESP_LOGE(TAG, "Could not create cluster"); return NULL; } + if (flags & CLUSTER_FLAG_SERVER) { static const auto plugin_server_init_cb = CALL_ONCE(MatterPowerSourcePluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); @@ -950,9 +909,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterIcdManagementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); attribute::create_idle_mode_duration(cluster, CONFIG_ICD_ACTIVE_MODE_INTERVAL_MS); @@ -996,9 +953,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterUserLabelPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1028,9 +983,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterFixedLabelPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1063,17 +1016,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterIdentifyPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - - /* Extra initialization */ - uint16_t endpoint_id = endpoint::get_id(endpoint); - identification::init(endpoint_id, config->identify_type); - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1084,6 +1030,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + /* Extra initialization */ + uint16_t endpoint_id = endpoint::get_id(endpoint); + identification::init(endpoint_id, config->identify_type); + /* Commands */ command::create_identify(cluster); @@ -1109,13 +1059,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterGroupsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1160,13 +1107,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterScenesManagementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1215,13 +1159,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterOnOffPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1274,13 +1215,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterLevelControlPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1333,13 +1271,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterColorControlPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1410,16 +1345,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterFanControlPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1432,6 +1361,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* fan_control */ @@ -1455,16 +1388,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterThermostatPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1476,6 +1403,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + /* Commands */ command::create_setpoint_raise_lower(cluster); @@ -1532,7 +1463,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -1561,12 +1491,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1576,6 +1501,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* air_quality */ @@ -1598,12 +1527,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1613,6 +1537,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* hepa_filter_monitoring */ @@ -1635,12 +1563,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1650,6 +1573,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* activated_carbon_filter_monitoring */ @@ -1668,12 +1595,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1683,6 +1605,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1702,12 +1628,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1717,6 +1638,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1736,12 +1661,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1751,6 +1671,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1770,12 +1694,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1785,6 +1704,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1804,12 +1727,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1819,6 +1737,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1838,12 +1760,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1853,6 +1770,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1872,12 +1793,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1887,6 +1803,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1906,12 +1826,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1921,6 +1836,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1940,12 +1859,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1955,6 +1869,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -1974,12 +1892,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -1989,6 +1902,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } @@ -2012,12 +1929,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2031,6 +1943,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + event::create_operational_error(cluster); return cluster; @@ -2055,16 +1971,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2074,6 +1984,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* laundry_washer_mode */ @@ -2099,12 +2013,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2112,6 +2021,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* laundry_washer_controls */ @@ -2137,12 +2050,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2156,6 +2064,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* laundry_dryer_controls */ @@ -2174,12 +2086,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { if (config && config -> delegate != nullptr) { static const auto delegate_init_cb = DishWasherModeDelegateInitCB; set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); @@ -2187,7 +2094,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2197,6 +2103,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* dish_washer_mode */ @@ -2219,12 +2129,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2232,6 +2137,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* dish_washer_alarm */ @@ -2250,12 +2159,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2269,6 +2173,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + event::create_low_battery(cluster); event::create_hardware_fault(cluster); event::create_end_of_service(cluster); @@ -2308,16 +2216,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterDoorLockPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2331,6 +2233,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + event::create_door_lock_alarm(cluster); event::create_lock_operation(cluster); event::create_lock_operation_error(cluster); @@ -2365,12 +2271,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2388,6 +2289,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + /* Commands */ command::create_up_or_open(cluster); command::create_down_or_close(cluster); @@ -2418,16 +2323,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterSwitchPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2438,6 +2337,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* switch_cluster */ @@ -2458,16 +2361,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterTemperatureMeasurementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2479,6 +2376,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* temperature_measurement */ @@ -2499,16 +2400,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterRelativeHumidityMeasurementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2520,6 +2415,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* relative_humidity_measurement */ @@ -2542,16 +2441,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterOccupancySensingPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2563,6 +2456,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* occupancy_sensing */ @@ -2583,16 +2480,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterBooleanStatePluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2602,6 +2493,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* boolean_state */ @@ -2626,20 +2521,17 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterBooleanStateConfigurationPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } /* Features */ if (features & feature::visual::get_id()) { @@ -2676,13 +2568,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterLocalizationConfigurationPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes not managed internally */ global::attribute::create_feature_map(cluster, 0); - global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { /* Attributes not managed internally */ @@ -2718,13 +2607,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterTimeFormatLocalizationPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes not managed internally */ global::attribute::create_feature_map(cluster, 0); - if (config) { /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); @@ -2760,12 +2646,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterIlluminanceMeasurementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2782,6 +2663,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* illuminance_measurement */ @@ -2801,12 +2686,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterPressureMeasurementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2821,6 +2701,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* pressure_measurement */ @@ -2840,12 +2724,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterFlowMeasurementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -2860,6 +2739,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* flow_measurement */ @@ -2884,16 +2767,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterPumpConfigurationAndControlPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /** Attributes not managed internally **/ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -2909,6 +2786,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* pump_configuration_and_control */ @@ -2972,20 +2853,18 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) static const auto plugin_server_init_cb = CALL_ONCE(MatterDiagnosticLogsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + /* commands */ command::create_retrieve_logs_request(cluster); command::create_retrieve_logs_response(cluster); @@ -3010,12 +2889,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterSoftwareDiagnosticsPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { + /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -3048,7 +2925,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -3091,7 +2967,6 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -3321,20 +3196,18 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags) if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* rvc_operational_state */ @@ -3396,13 +3269,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes not managed internally */ global::attribute::create_cluster_revision(cluster, cluster_revision); } @@ -3443,9 +3313,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ set_delegate_and_init_callback(cluster, delegate_init_cb, config->delegate); } add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -3500,9 +3368,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ if (flags & CLUSTER_FLAG_SERVER) { add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); @@ -3659,17 +3525,11 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterValveConfigurationAndControlPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); attribute::create_remaining_duration(cluster, 0); - /** Attributes not managed internally **/ global::attribute::create_cluster_revision(cluster, cluster_revision); if (config) { @@ -3682,6 +3542,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ } } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + /* Commands */ command::create_open(cluster); command::create_close(cluster); @@ -3717,16 +3581,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterDeviceEnergyManagementPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes should managed by application */ attribute::create_esa_type(cluster, 0); attribute::create_esa_can_generate(cluster, 0); @@ -3737,6 +3595,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ global::attribute::create_cluster_revision(cluster, cluster_revision); } + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + /* Features */ if (features & feature::power_adjustment::get_id()) { feature::power_adjustment::add(cluster); @@ -3826,16 +3688,10 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ static const auto plugin_server_init_cb = CALL_ONCE(MatterApplicationBasicPluginServerInitCallback); set_plugin_server_init_callback(cluster, plugin_server_init_cb); add_function_list(cluster, function_list, function_flags); - } - if (flags & CLUSTER_FLAG_CLIENT) { - create_default_binding_cluster(endpoint); - } - if (flags & CLUSTER_FLAG_SERVER) { /* Attributes managed internally */ global::attribute::create_feature_map(cluster, 0); - /* Attributes should managed by application */ attribute::create_application_name(cluster, NULL, 0); attribute::create_application(cluster, NULL, 0 , 0); @@ -3845,6 +3701,11 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_ /** Attributes not managed internally **/ global::attribute::create_cluster_revision(cluster, cluster_revision); } + + if (flags & CLUSTER_FLAG_CLIENT) { + create_default_binding_cluster(endpoint); + } + return cluster; } } /* application_basic */