.. _beat: ====== Beat ====== The beat or *heartbeat* in CCA provides the base timing of a CCA component circuit. It is used by all timing-based :ref:`procstrat` as potential trigger for execution. Typically, you create a periodic beat per circuit, which is configured to have a certain timing. An example to create a beat that beats every 10 ms: .. code-block:: cpp :emphasize-lines: 1 BeatPtr heartbeat = PeriodicBeat::create(10); // every 10 milliseconds CCA components timing-based :ref:`procstrat` need to be assigned to this beat and configure with their processing strategy, if they are executed every beat, or every n-th beat: .. code-block:: cpp :emphasize-lines: 4,7,9-10 BeatPtr heartbeat = PeriodicBeat::create(10); // every 10 milliseconds ... ComponentPtr myComponent1 = MyComponent::create("foo")); myComponent1.setProcessingStrategy(Timed::samplerate(1)); // executed every 10 ms ... ComponentPtr myComponent2 = MyComponent::create("bar")); myComponent2.setProcessingStrategy(Timed::samplerate(3)); // executed every 30 ms ... heartbeat->registerReceiver(myComponent1): heartbeat->registerReceiver(myComponent2):