This cluster is currently following a code driven approach.
This means that the Accessors for the attribute CurrentPosition are no longer available.
Now to set the value for this attribute the following code change applies:
BEFORE (using the Accessors)
app::Clusters::Switch::Attributes::CurrentPosition::Set(1, position);
CURRENT (using the code driven approach)
auto switchCluster = app::Clusters::Switch::FindClusterOnEndpoint(1);
VerifyOrReturn(switchCluster != nullptr);
CHIP_ERROR err = switchCluster->SetCurrentPosition(position);
if (err == CHIP_NO_ERROR)
{
// SetCurrentPosition() succeeded.
}
else
{
// SetCurrentPosition() failed.
}
Attributes with Quality F (Fixed) are configuration values that the cluster takes from ember and can not be changed.
Attributes with Quality F (Fixed) maintain the Accessors but only for reading the value (getters).
Also the code to register the events needs to change, for example:
BEFORE
Clusters::SwitchServer::Instance().OnSwitchLatch(1, position);
CURRENT
auto switchCluster = app::Clusters::Switch::FindClusterOnEndpoint(1);
VerifyOrReturn(switchCluster != nullptr);
auto event = switchCluster->OnSwitchLatch(position);
if (event.has_value())
{
OnSwitchLatch() succeeded.
}
else
{
OnSwitchLatch() failed.
}