eeros_architecture:sequencer:define_sequence
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
eeros_architecture:sequencer:define_sequence [2020/09/30 08:07] – [Define the Action] ursgraf | eeros_architecture:sequencer:define_sequence [2023/02/26 00:25] (current) – [Add Parameters] ursgraf | ||
---|---|---|---|
Line 58: | Line 58: | ||
Its mandatory to implement this function. If not, no work is done and the step or sequence terminates immediately. | Its mandatory to implement this function. If not, no work is done and the step or sequence terminates immediately. | ||
A step or blocking sequence can return a value of type '' | A step or blocking sequence can return a value of type '' | ||
+ | |||
There might be sequences which should never stop. This must be done as shown below: | There might be sequences which should never stop. This must be done as shown below: | ||
<code cpp> | <code cpp> | ||
public: | public: | ||
int action() { | int action() { | ||
- | while (Sequencer::running) step1(); | + | while (state == SequenceState::running) step1(); |
// while (true) step1(); | // while (true) step1(); | ||
return 0; | return 0; | ||
} | } | ||
</ | </ | ||
- | This guarantees that the sequence could be stopped by the main program | + | This guarantees that the sequence could be aborted, resumed or restarted |
===== Define Preconditions ===== | ===== Define Preconditions ===== | ||
You may want to start a sequence or step only if a certain precondition is met. Override the function // | You may want to start a sequence or step only if a certain precondition is met. Override the function // | ||
Line 86: | Line 87: | ||
<code cpp> | <code cpp> | ||
int operator() (double x, double y) { | int operator() (double x, double y) { | ||
- | this.x = x; // store the first parameter into a local variable for further use | + | this->x = x; // store the first parameter into a local variable for further use |
- | this.y = y; // store the second parameter into a local variable for further use | + | this->y = y; // store the second parameter into a local variable for further use |
return start(); | return start(); | ||
} | } |
eeros_architecture/sequencer/define_sequence.1601446026.txt.gz · Last modified: 2020/09/30 08:07 by ursgraf