Running a Simple Sequence
The following examples demonstrate how a single sequence runs a few steps. When the sequence takes too long to run, a timeout monitor fires and runs an exception sequence.
Simple Sequence with Five Steps
In the EEROS library you will find a directory with examples. For this example see SequencerTest10.cpp.
Open a shell in the build directory of your EEROS library and run
$ ./examples/sequencer/sequencerTest10
The main sequence will start running. It consists of five steps. Each of them simply waits for one second. After five seconds the sequence will terminate.
Main Sequence Running Infinitely
Instead of running five consecutive steps of type StepA
, the main sequence could be changed to run infinitely. Change the code of the sequence as follows:
while (getRunningState() == SequenceState::running) stepA(1);
Recompile the program and run it. Please make sure to check for the sequence to be still running. This is for the case that you want to terminate the program by pressing CTRL-C.
Timeout Monitor Aborts Main Sequence
The next example is SequencerTest11.cpp. Open a shell in the build directory of your EEROS library and run
$ ./examples/sequencer/sequencerTest11
The same main sequence will start running. A timeout monitor supervises the main sequence. Its timeout time is set to 2.5s. After the monitor fires the main sequence aborts because its timeout behavior is set to abort
.
Timeout Monitor Aborts Main Sequence
The next example is SequencerTest12.cpp. Open a shell in the build directory of your EEROS library and run
$ ./examples/sequencer/sequencerTest12
The same main sequence will start running. A timeout monitor supervises the main sequence. Its timeout time is set to 2.5s. After the monitor fires an exception sequence runs. This consists of a single step which waits for 3 s. After termination of the exception sequence the main sequence aborts because its timeout behavior is set to abort
.
Timeout Monitor Resumes Main Sequence
The next example is SequencerTest13.cpp. Open a shell in the build directory of your EEROS library and run
$ ./examples/sequencer/sequencerTest13
The same main sequence will start running. A timeout monitor supervises the main sequence. Its timeout time is set to 2.5s. After the monitor fires an exception sequence runs. This consists of a single step which waits for 3 s. After termination of the exception sequence the main sequence resumes because its timeout behavior is set to resume
. Observe that the remaining steps of the main sequence run.
Timeout Monitor Resumes Main Sequence
The next example is SequencerTest14.cpp. Open a shell in the build directory of your EEROS library and run
$ ./examples/sequencer/sequencerTest14
The same main sequence will start running. A timeout monitor supervises the main sequence. Its timeout time is set to 2.5s. After the monitor fires an exception sequence runs. This consists of a single step which waits for 3 s. After termination of the exception sequence the main sequence restarts because its timeout behavior is set to restart
. Observe that the monitor fires again after 2.5s which causes the exception sequence to run and another restart. This would continue indefinitely. However, the times of the restart get counted in the example and after the count reaches 3 the timeout behavior is set to abort
.