You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GetDataversion and GetClusterFlags are assumed to refer to the path in GetPath
all the rest (Write notification, attributes, read, write, invoke, accepted commands, generated commands) take in a full path.
This asymmetry is odd - some functions look like "can handle any path" where as a few are restricted to one path.
For implementing clusters, in some cases some clusters are tightly connected and implementing them in one class could be easier. In that case it seems desirable to allow a single "cluster interface" to handle multiple paths.
Suggested changes:
Getpath should actualy be GetPaths and return a Span<const ConcreteClusterPath>
GetDataVersion and GetClusterFlags should take in a ConcreteClusterPath (and the path MUST be one of the GetPaths values)
DefaultServerCluster still keeps the "one cluster implementation"
The text was updated successfully, but these errors were encountered:
Example case: RVC, Air purifier and nested appliances (e.g. refrigerator/cooktop) that have tight coupling within 1 endpoints or across a parent and some children endpoint.
Matter closures in 1.5 is another example where 1 ServerClusterInstance that can handle several <EndpoindId, ClusterId> cluster paths in 1 instance may make life easier for some products.
andy31415
pushed a commit
to andy31415/connectedhomeip
that referenced
this issue
Mar 7, 2025
https://github.com/project-chip/connectedhomeip/blob/master/src/app/server-cluster/ServerClusterInterface.h#L51 currently is split into separate state restriction-wise:
GetPath
- represents a SINGLE PATHGetDataversion
andGetClusterFlags
are assumed to refer to the path inGetPath
This asymmetry is odd - some functions look like "can handle any path" where as a few are restricted to one path.
For implementing clusters, in some cases some clusters are tightly connected and implementing them in one class could be easier. In that case it seems desirable to allow a single "cluster interface" to handle multiple paths.
Suggested changes:
Getpath
should actualy beGetPaths
and return aSpan<const ConcreteClusterPath>
ConcreteClusterPath
(and the path MUST be one of the GetPaths values)The text was updated successfully, but these errors were encountered: