Merge branch 'bugfix/admin_commissioning' into 'release/v1.2'

components/esp-matter: Add feature for the administrator commissioning cluster

See merge request app-frameworks/esp-matter!814
This commit is contained in:
Hrishikesh Dhayagude
2024-07-23 22:25:55 +08:00
5 changed files with 46 additions and 5 deletions
+6 -2
View File
@@ -543,7 +543,7 @@ namespace administrator_commissioning {
const function_generic_t *function_list = NULL;
const int function_flags = CLUSTER_FLAG_NONE;
cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags)
cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features)
{
cluster_t *cluster = cluster::create(endpoint, AdministratorCommissioning::Id, flags);
if (!cluster) {
@@ -575,9 +575,13 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags)
}
}
/* Features */
if (features & feature::basic::get_id()) {
feature::basic::add(cluster);
}
/* Commands */
command::create_open_commissioning_window(cluster);
command::create_open_basic_commissioning_window(cluster);
command::create_revoke_commissioning(cluster);
return cluster;
+1 -1
View File
@@ -160,7 +160,7 @@ typedef struct config {
config() : cluster_revision(1) {}
} config_t;
cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags);
cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags, uint32_t features);
} /* administrator_commissioning */
namespace operational_credentials {
@@ -58,7 +58,8 @@ esp_err_t add(endpoint_t *endpoint, config_t *config)
general_commissioning::create(endpoint, &(config->general_commissioning), CLUSTER_FLAG_SERVER);
network_commissioning::create(endpoint, &(config->network_commissioning), CLUSTER_FLAG_SERVER);
general_diagnostics::create(endpoint, &(config->general_diagnostics), CLUSTER_FLAG_SERVER);
administrator_commissioning::create(endpoint, &(config->administrator_commissioning), CLUSTER_FLAG_SERVER);
administrator_commissioning::create(endpoint, &(config->administrator_commissioning), CLUSTER_FLAG_SERVER,
ESP_MATTER_NONE_FEATURE_ID);
operational_credentials::create(endpoint, &(config->operational_credentials), CLUSTER_FLAG_SERVER);
group_key_management::create(endpoint, CLUSTER_FLAG_SERVER);
+25 -1
View File
@@ -82,12 +82,36 @@ esp_err_t add(cluster_t *cluster)
/* Attributes managed internally */
attribute::create_tag_list(cluster, NULL, 0, 0);
return ESP_OK;
}
} /* taglist */
}
}
namespace administrator_commissioning {
namespace feature {
namespace basic {
uint32_t get_id()
{
return (uint32_t)AdministratorCommissioning::Feature::kBasic;
}
esp_err_t add(cluster_t *cluster)
{
if (!cluster) {
ESP_LOGE(TAG, "Cluster cannot be NULL");
return ESP_ERR_INVALID_ARG;
}
update_feature_map(cluster, get_id());
command::create_open_basic_commissioning_window(cluster);
return ESP_OK;
}
} /* basic */
}
}
@@ -43,6 +43,18 @@ esp_err_t add(cluster_t *cluster);
} /* feature */
} /* descriptor */
namespace administrator_commissioning {
namespace feature {
namespace basic {
uint32_t get_id();
esp_err_t add(cluster_t *cluster);
} /* basic */
} /* feature */
} /* administrator_commissioning */
namespace power_source {
namespace feature {
namespace wired {