tree: ea8cbcb0bd615c097ba30a20e2bd3a31df673e12 [path history] [tgz]
  1. operational-state-cluster-objects.h
  2. operational-state-server.cpp
  3. operational-state-server.h
  4. README.md
src/app/clusters/operational-state-server/README.md

The Operational State cluster and its derived clusters

The Operational State cluster is a normal cluster with ID 0x0060. It is also a base cluster from with other operational state clusters are derived.

How to use an Operational State cluster

All Operational State derived clusters have their own Instance class within their respective namespace. This class is used to manage the SDK side of the cluster. This class requires an OperationalState::Delegate where the application specific logic is implemented.

To use an Operational State cluster

  • Create a class that inherits the OperationalState::Delegate class.
  • For this class, implement the necessary virtual methods.
  • In some translation unit (.c or .cpp file), instantiate the delegate class.
  • Instantiate the Instance class for your Operational State cluster using the delegate instance.
  • Call the Init() method of your instance after the root Server::Init().
  • Alternatively, the last two steps can be done in the emberAf<ClusterName>ClusterInitCallback function.

Note Zap accessor functions for these clusters do not exist. Use the instance's Set... and Get... functions to access the attributes.

How to add new derived clusters

Once an Operational State derived cluster has been defined in the spec, add the implementation using the following steps

  1. Translate the spec as an XML in src/app/zap-templates/zcl/data-model/chip. You can look at similar files on how to do this.
  2. Regenerate the zap code.
  3. Implement an Instance class in your cluster's namespace.
  4. Extend the all-clusters-app example to include your new cluster.