@@ -26,6 +26,9 @@ namespace Clusters {
26
26
namespace EcosystemInformation {
27
27
namespace {
28
28
29
+ #define ZCL_ECOSYSTEM_INFORMATION_CLUSTER_REVISION (1u )
30
+ #define ZCL_ECOSYSTEM_INFORMATION_FEATURE_MAP (0u )
31
+
29
32
constexpr size_t kDeviceNameMaxSize = 64 ;
30
33
constexpr size_t kUniqueLocationIdMaxSize = 64 ;
31
34
constexpr size_t kUniqueLocationIdsListMaxSize = 64 ;
@@ -46,18 +49,7 @@ class AttrAccess : public AttributeAccessInterface
46
49
CHIP_ERROR AttrAccess::Read (const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder)
47
50
{
48
51
VerifyOrDie (aPath.mClusterId == Clusters::EcosystemInformation::Id);
49
- switch (aPath.mAttributeId )
50
- {
51
- case Attributes::RemovedOn::Id:
52
- return EcosystemInformationServer::Instance ().EncodeRemovedOnAttribute (aPath.mEndpointId , aEncoder);
53
- case Attributes::DeviceDirectory ::Id:
54
- return EcosystemInformationServer::Instance ().EncodeDeviceDirectoryAttribute (aPath.mEndpointId , aEncoder);
55
- case Attributes::LocationDirectory ::Id:
56
- return EcosystemInformationServer::Instance ().EncodeLocationStructAttribute (aPath.mEndpointId , aEncoder);
57
- default :
58
- break ;
59
- }
60
- return CHIP_NO_ERROR;
52
+ return EcosystemInformationServer::Instance ().ReadAttribute (aPath, aEncoder);
61
53
}
62
54
63
55
// WARNING: caller is expected to use the returned LocationDescriptorStruct::Type immediately. Caller must
@@ -285,6 +277,30 @@ CHIP_ERROR EcosystemInformationServer::RemoveDevice(EndpointId aEndpoint, uint64
285
277
return CHIP_NO_ERROR;
286
278
}
287
279
280
+ CHIP_ERROR EcosystemInformationServer::ReadAttribute (const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder)
281
+ {
282
+ switch (aPath.mAttributeId )
283
+ {
284
+ case Attributes::RemovedOn::Id:
285
+ return EcosystemInformationServer::Instance ().EncodeRemovedOnAttribute (aPath.mEndpointId , aEncoder);
286
+ case Attributes::DeviceDirectory::Id:
287
+ return EcosystemInformationServer::Instance ().EncodeDeviceDirectoryAttribute (aPath.mEndpointId , aEncoder);
288
+ case Attributes::LocationDirectory::Id:
289
+ return EcosystemInformationServer::Instance ().EncodeLocationStructAttribute (aPath.mEndpointId , aEncoder);
290
+ case Attributes::ClusterRevision::Id: {
291
+ uint16_t rev = ZCL_ECOSYSTEM_INFORMATION_CLUSTER_REVISION;
292
+ return aEncoder.Encode (rev);
293
+ }
294
+ case Attributes::FeatureMap::Id: {
295
+ uint32_t featureMap = ZCL_ECOSYSTEM_INFORMATION_FEATURE_MAP;
296
+ return aEncoder.Encode (featureMap);
297
+ }
298
+ default :
299
+ break ;
300
+ }
301
+ return CHIP_NO_ERROR;
302
+ }
303
+
288
304
CHIP_ERROR EcosystemInformationServer::EncodeRemovedOnAttribute (EndpointId aEndpoint, AttributeValueEncoder & aEncoder)
289
305
{
290
306
auto it = mDevicesMap .find (aEndpoint);
0 commit comments