User Tools

Site Tools


new

This is an old revision of the document!


Generic Block

A generic block simply runs a predefined algorithm which can be passed to the constructor of the block. Such an algorithm could theoretically calculate any output from a given set of inputs. It can be especially valuable for cases like the following. A signal value must be applied with an offset and a scale. How to achieve this?

  1. Use a constant block delivering the offset together with a sum block which adds the offset to the signal. Finally, a gain block applies the desired scale. All in all, you will use three blocks.
  2. Use a generic block and define the necessary algorithm as follows
    GenericBlock<> gen([&]() {
      gen.getOut(0).getSignal().setValue(gen.getIn(0).getSignal().getValue() + 0.1) * 1.1);
      gen.getOut(0).getSignal().setTimestamp(gen.getIn(0).getSignal().getTimestamp());
    })

Such a generic block can save valuable execution time in reducing the number of necessary blocks. It can also be useful when a given algorithm cannot be stitched together from predefined blocks.

https://wiki.eeros.org/eeros_architecture/control_system/subsystem

einfügen in https://wiki.eeros.org/tools/cplusplus

Using Input Signals

Consider the following example

This subsystem has an input which is used by several blocks within the subsystem. In order to be able to connect these blocks to the input, you have to define the input as being of type InputSub instead of simply Input.

InputSub<> in;  

The getter function for this input will be

virtual Input<>& getIn() {return in;}  

See Tutorial for a example of using a subsystem.

Auch in Tutorial addieren.

offRange in InputAction, https://wiki.eeros.org/eeros_architecture/safety_system/io_actions

Hinweis machen bei eigener Block neu machen , neu mit blockio

new.1625681401.txt.gz · Last modified: 2021/07/07 20:10 by ursgraf