Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GUI for Creating Visual State Machine [closed]

I want to create an application GUI that allows a user to create a visual state machine. The interface would work similarly to Microsoft's Visio product, where the user adds blocks or circles (states) and then connects the states with arrow lines denoting a change of state or an event. In the backend, I would like the GUI to create an SCXML file to describe the important connections.

See: SCXML in wikipedia

Here are some other requirements:

  1. Cross Platform (Linux/Windows/MAC OSX)
  2. Open Source
  3. User-friendly
  4. Qt implementation - (preferred, not required)

Here are some related projects:

  1. http://ostatic.org/fsme - Doesn't work with new version of Qt, not well-maintained
  2. http://doc.qt.nokia.com/4.6/graphicsview-diagramscene.html - very close, but missing some functionality such as multiple connections between two states.

If there are no other alternatives, I am going to take Qt's Diagram Scene example (above) and modify it to suit my needs.

I would love to know if anyone else knows of a well-supported and well-developed tool for dynamically creating visual state machines.

like image 664
SyllogismRXS Avatar asked Feb 11 '11 18:02

SyllogismRXS


3 Answers

There is qfsm.

like image 75
hmuelner Avatar answered Oct 17 '22 07:10

hmuelner


Have you seen AutomataEditor? It can even do a simulation of an automata work.

It's written in Qt and it's open source.

like image 41
Mi-La Avatar answered Oct 17 '22 05:10

Mi-La


You might want to check the free QM modeling tool at: http://www.state-machine.com/qm. QM has been developed in the latest Qt 4.7 and runs on Windows and Linux platforms. The tool is specifically designed for hierarchical state machines (UML statecharts). If you know other graphical tools of this type (IBM Rhapsody, BoUML, MagicDraw, Enterprise Architect, or even Visio), you will appreciate the ease of creating nested states and routing transitions in QM. The tool generates C or C++ code based on the mature QP state machine frameworks. (Automatic code generation almost always is based on a framework.) QM is targeted mainly for embedded real-time systems.

like image 1
Miro Samek Avatar answered Oct 17 '22 05:10

Miro Samek