theDmi theDmi - 1 year ago 73
C++ Question

Which State Machine execution frameworks for C++ implement UML semantics?

I'm looking for a framework that provides execution of hierarchical state machines (HSMs).

These are the requirements for the framework:

  • Conforms to UML state machine semantics (as much as possible)

  • Supports at least

    • run-to-completion semantics

    • hierarchical states

    • entry and exit actions

    • transition actions

    • guards

    • events with custom parameters

  • Is object-oriented or does at least not prohibit OO designs

The target platform is an medium- to large-sized embedded system with an OS.

Do you know a framework that fulfills the above requirements? What are the pros and cons of your framework?

Dan Dan
Answer Source

Check out the Quantum Platform.

I've used it on several embedded projects (from very tiny to very large), and it supports all of the bullet items you require, and more.

The web page for the QP does a much better job of explaining itself than I can do here.

Be aware, the QP does not implement 100% of the functionality specified in the UML specification, but the departures are clearly explained, and in all my experience with the QP, none of them have been a problem for the project.

There are also 2 Boost statechart packages, which you seem to know about.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download