Prev: Representing a state machine
Next: Preparing the application files
As mentioned previously, RKH is a generic, flexible, modular, highly portable, ANSI-C compliant, and open-source development tool for implementing hierarchical state machines based on modern state machine concepts. This modern techniques are used to give an abstract description of the dynamic behavior of a system in a substantial manner.
The key features of the RKH framework:
- State machines representation is based on state tables.
- Representing a state machine with RKH is intuitive, and easy.
- Reflects the state diagram without obfuscation.
- The RKH application are highly maintainable.
- Easy to integrate with any event queuing and dispatching mechanism.
- Useful in embedded systems.
- The most of the RKH implementation is independent of any particular CPU, operating system, or compiler.
- Flexible and user-configurable code generation.
- Very small footprint.
- Include a dispatching event mechanism based on active object's priority.
- Include a queue module
- Include a software timer module .
- Include a fixed-size memory block module .
- Include a native Tracing tool.
- Support hierarchically nested states, and flat state machine.
- Support multiple state machines.
- Support conditional, choice, and history pseudostates.
- Support compound transitions with guards.
- Support local transitions.
- Support the entry and exit actions.
- Implement the traditional transition sequence.
- Include mechanism for deferring events.
- Support event dispatching with parameters.
- Include dynamic events.
- Support a easy way to use events with arguments.
- Support systems-friendly assertion macros like assert, allege, error, require, and ensure.
The RKH not implements neither entire UML specs. nor entire Statechart specs. Instead, the RKH intention is to support just enough basic concepts of that powerful tools to facilitate the reactive-system modeling holding a solid, and efficient implementation. Broadly speaking, the RKH implementation has been designed from the ground up to be used in 8-bits platforms but can be easily adapted to 16 or 32-bits platforms.
Prev: Representing a state machine
Next: Preparing the application files