eeros_architecture:control_system:subsystem
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| eeros_architecture:control_system:subsystem [2021/07/08 20:02] – [Define a Subsystem] ursgraf | eeros_architecture:control_system:subsystem [2025/07/22 11:24] (current) – [Using Subio Block] ursgraf | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| ===== Define a Subsystem ===== | ===== Define a Subsystem ===== | ||
| - | In order to create a subsystem you have to create a custom made block (see [[eeros_architecture: | + | In order to create a subsystem | 
| + | |||
| + | ==== Using Subio Block ==== | ||
| + | |||
| + | Define | ||
| <code cpp> | <code cpp> | ||
| - | class Observer : public eeros:: | + | class Observer : public eeros:: | 
| + |  | ||
| + | Observer() : gain1({5.0, 2.2}) ... { | ||
| + | sum1.getIn(0).connect(in); | ||
| + | sum1.getIn(1).connect(sum2.getOut()); | ||
| + | sum1.negateInput(1); | ||
| + | setOut(sum1.getOut()); | ||
| + | ... | ||
| + | } | ||
| + | |||
| + | virtual void run() { | ||
| + | sum2.run(); | ||
| + | sum1.run(); | ||
| + | ... | ||
| + | gain1.run(); | ||
| + | } | ||
| + | |||
| + |  | ||
| + | eeros:: | ||
| + | eeros:: | ||
| + | ... | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | The whole subsystem is now a block for itself. It can be added to a control system (or an outer subsystem). Its run-method will be called automatically as soon as it is added to a time domain which itself must be started by the executor. | ||
| + | |||
| + | For an example study the tutorial at [[getting_started: | ||
| + | |||
| + | ==== Using Custom Block ==== | ||
| + | Define the necessary inner blocks in your custom class. In the constructor you create the inner blocks and connect them among each other. The run-method must call all the run-methods of the inner blocks. Write getter methods for all the inputs into and outputs out of the new subsystem | ||
| + | <code cpp> | ||
| + | class Observer : public eeros:: | ||
|  |  | ||
| Observer() : gain1({5.0, 2.2}) ... { | Observer() : gain1({5.0, 2.2}) ... { | ||
| Line 34: | Line 69: | ||
| The whole subsystem is now a block for itself. It can be added to a control system (or an outer subsystem). Its run-method will be called automatically as soon as it is added to a time domain which itself must be started by the executor. | The whole subsystem is now a block for itself. It can be added to a control system (or an outer subsystem). Its run-method will be called automatically as soon as it is added to a time domain which itself must be started by the executor. | ||
| - | For an example study the tutorial at [[getting_started: | ||
| ===== Using Input Signals ===== | ===== Using Input Signals ===== | ||
eeros_architecture/control_system/subsystem.1625767356.txt.gz · Last modified: 2021/07/08 20:02 by ursgraf
                
                