3 ms·
I like the approach of "Practical UML Statecharts in C/C++", at least the simple one. More or less, keep the state on a function pointer, each state is represen
by nova 14y ago
I like the approach of "Practical UML Statecharts in C/C++", at least the simple one. More or less, keep the state on a function pointer, each state is represented by a function which gets incoming messages or events and returns the next state. I used it for a RS485 protocol running on a microcontroller quite successfully.
- pierrebouchet 14y agoThere is also the HSM (hierarchical state machine) extension of this concept (by the same author, not sure it's in the same book) where a given state either handles an event or returns a pointer to a "superstate" that handles it. This kind of "behavioral inheritance" allows for a much more compact code. Compact and efficient state machines are immensely useful when working with small microcontrollers that don't even run an OS.
- nickmain 14y agoThe other nice thing about HSMs are concurrent sub-states. They allow clean modeling of the orthogonal aspects of the state.