Skip to content

Commit 62e8875

Browse files
committed
Merge branch 'basic_info/fix_optional_attr_v1_5' into 'release/v1.5'
data-mode-provider: Set optional attributes set for basic information cluster(v1.5) See merge request app-frameworks/esp-matter!1412
2 parents d177e83 + ed58a74 commit 62e8875

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

components/esp_matter/data_model_provider/clusters/basic_information_integration.cpp

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,47 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15+
#include <esp_matter_data_model.h>
16+
#include <data_model_provider/esp_matter_data_model_provider.h>
17+
1518
#include <app/ClusterCallbacks.h>
1619
#include <app/clusters/basic-information/BasicInformationCluster.h>
17-
#include <data_model_provider/esp_matter_data_model_provider.h>
20+
#include <lib/core/DataModelTypes.h>
1821

1922
using namespace chip;
2023
using namespace chip::app;
2124
using namespace chip::app::Clusters;
25+
using namespace chip::app::Clusters::BasicInformation::Attributes;
2226

2327
namespace {
2428
ServerClusterRegistration gRegistration(BasicInformationCluster::Instance());
29+
30+
bool IsAttrEnabled(uint32_t attrId)
31+
{
32+
return esp_matter::attribute::get(kRootEndpointId, BasicInformation::Id, attrId);
33+
}
34+
35+
BasicInformationCluster::OptionalAttributesSet GetOptionalAttrsSet()
36+
{
37+
BasicInformationCluster::OptionalAttributesSet attrsSet;
38+
return attrsSet.Set<ManufacturingDate::Id>(IsAttrEnabled(ManufacturingDate::Id))
39+
.Set<PartNumber::Id>(IsAttrEnabled(PartNumber::Id))
40+
.Set<ProductURL::Id>(IsAttrEnabled(ProductURL::Id))
41+
.Set<ProductLabel::Id>(IsAttrEnabled(ProductLabel::Id))
42+
.Set<SerialNumber::Id>(IsAttrEnabled(SerialNumber::Id))
43+
.Set<LocalConfigDisabled::Id>(IsAttrEnabled(LocalConfigDisabled::Id))
44+
.Set<Reachable::Id>(IsAttrEnabled(Reachable::Id))
45+
.Set<ProductAppearance::Id>(IsAttrEnabled(ProductAppearance::Id))
46+
.Set<UniqueID::Id>(IsAttrEnabled(UniqueID::Id));
2547
}
48+
} // namespace
2649

2750
void ESPMatterBasicInformationClusterServerInitCallback(EndpointId endpoint)
2851
{
2952
// We implement the cluster as a singleton on the root endpoint.
3053
VerifyOrReturn(endpoint == kRootEndpointId);
3154

55+
BasicInformationCluster::Instance().OptionalAttributes() = GetOptionalAttrsSet();
3256
CHIP_ERROR err = esp_matter::data_model::provider::get_instance().registry().Register(gRegistration);
3357
if (err != CHIP_NO_ERROR) {
3458
ChipLogError(AppServer, "Failed to register BasicInformation - Error %" CHIP_ERROR_FORMAT, err.Format());

0 commit comments

Comments
 (0)