# Real-Time Robotics Framework

### Sidebar

getting_started:tutorials:sequencer1

# 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. Simple sequence with steps ### 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.

Time monitor fires

## 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. Exception sequences runs after monitor fired ## 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.

Main sequence resumes after exception

## 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.

Main sequence restarts after exception

getting_started/tutorials/sequencer1.txt · Last modified: 2021/03/31 14:37 by ursgraf