User Tools

Site Tools


Custom Blocks

If a certain functionality cannot be found in the Available Blocks you have to implement it in your own block. This is also the case if you want to create aSubsystem.

How Many Inputs and Outputs?

If your block has one input, one output, or one input and one output, you should design your block as an extension of Block1i, Block1o, or Block1i1o, respectively.

For all other cases your block will have to define the necessary inputs and outputs as fields of your new block class.

As a example we take a block which is of type Block1i1o

template < typename T = double >  // make it available for many types
class MyBlock : public Block1i1o<T> {
  MyBlock() { ... }   // constructor
  virtual void run() { ... }  // do what must be done in this block

What Kind of Signals?

Depending on the type of the signals you will design your class as a template class or you will define it with a given type.

How to Handle the Timestamp

If your block is not time dependent, you will simply set the timestamp of the output to the same value as the timestamp of the input. If sampling time matters, you will have to calculate the timestamp of the output from the timestamp of the input and inner workings of your block.

There are cases that your blocks produces signals which do not depend on input signals from other blocks. It might generate its output signals from various other sources and will set its timestamp to a actual system time, or the time the original source signal was generated.

eeros_architecture/control_system/custom_blocks.txt · Last modified: 2021/05/16 15:28 by ursgraf