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 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.
- State machines representation is based on state table.
- 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, OS, 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 machines.
- Support multiple state machines.
- Support junction, branch and history (shallow and deep) pseudostates
- Support compound transitions with guards.
- Support submachine state
- Support entry and exit actions.
- Implement the traditional transition sequence.
- Include mechanism for deferring events.
- Support event dispatching with parameters.
- Support dynamic events.
- Support a easy way to use events with arguments.
- Support systems-friendly assertion macros like assert, allege, error, require, and ensure.
- Support local, internal and completion transitions
- Provide the test harness to develop based on test
- Support final state
I use RKH on several projects. I can guarantee it is a great tool for embedded systems development.
Rkh-reactivesys is wonderful! Thanks.