eeros_architecture:sequencer:sequencer
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
eeros_architecture:sequencer:sequencer [2017/09/12 21:05] – graf | eeros_architecture:sequencer:sequencer [2021/12/23 17:40] (current) – ursgraf | ||
---|---|---|---|
Line 2: | Line 2: | ||
====== Sequencer ====== | ====== Sequencer ====== | ||
The sequencer is responsible to run the main sequence. There is a single instance of the sequencer and therefore only one main sequence. Further, the sequencer contains a list with all sequences. Whenever you define a sequence it will automatically be added to this list. The list helps to retrieve a reference to a given sequence. This can be helpful is you wish to pass information into this sequence.\\ | The sequencer is responsible to run the main sequence. There is a single instance of the sequencer and therefore only one main sequence. Further, the sequencer contains a list with all sequences. Whenever you define a sequence it will automatically be added to this list. The list helps to retrieve a reference to a given sequence. This can be helpful is you wish to pass information into this sequence.\\ | ||
- | First, get the instance of the sequencer. | + | First, get the instance of the sequencer. Make sure to set the default logger output to an output stream, as the sequencer uses loggers. |
<code cpp> | <code cpp> | ||
+ | Logger:: | ||
auto& sequencer = Sequencer:: | auto& sequencer = Sequencer:: | ||
</ | </ | ||
- | The next step is to define a meaningfull | + | The next step is to define a meaningfull sequence (see [[.: |
<code cpp> | <code cpp> | ||
MainSequence mainSequence(" | MainSequence mainSequence(" | ||
- | | + | mainSequence(); |
- | | + | |
... // do other things such as starting the executor | ... // do other things such as starting the executor | ||
- | | + | |
</ | </ | ||
===== Forcing the Sequencer to Stop Immediately ===== | ===== Forcing the Sequencer to Stop Immediately ===== | ||
- | For a system under development you often want to abort a running system. This case must be handled carefully. As described in [[getting_started: | + | For a system under development you often want to abort a running system. This case must be handled carefully. As described in [[getting_started: |
<code cpp> | <code cpp> | ||
void signalHandler(int signum) { | void signalHandler(int signum) { | ||
Line 24: | Line 24: | ||
} | } | ||
</ | </ | ||
- | not only the safety system will gracefully shutdown but the sequencer running | + | not only the safety system will gracefully shutdown but the sequencer running |
+ | <code cpp> | ||
+ | ... | ||
+ | sequencer.wait(); | ||
+ | ... | ||
+ | </ | ||
eeros_architecture/sequencer/sequencer.txt · Last modified: 2021/12/23 17:40 by ursgraf