| # 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. |
| } |