Visible to the public Hierarchical Finite State Machine (HFSM) Design Studio

Visible to the public 


Important!

Before running the studio, please make sure of the following:

  • You must first be logged into CPS-VO. If you have no account, you can create one here.
  • Make sure you are using one of the supported web browsers listed here


Short Description

The Finite State Machine (FSM) is a design pattern in which actions are determined by events and the current context of the system. The driver code dispatches events to the FSM that forwards it to the current state. Functions processing the events decide what should be the next system state. After that, the process repeats. The Hierarchical FSM is an extension of the FSM concept.

                            Hierarchical Finite State Machine

Features

  • Complete modeling of State Machines following the UML specification including:
    • States with Hierarchy
    • Events
    • Internal Transitions
    • External Transitions
    • Local Transitions
    • Choice Pseudostates
    • Deep History Pseudostates
    • Shallow History Pseudostates
    • Initial States
    • End States
  • Interactive model creation
    • Positions of states are saved
    • Code can be edited directly in the model
    • Simulator automatically updates as model changes
    • Can use multi-select to move groups of states or to edit attributes of multiple objects (e.g. transition events)
    • Can auto-select all transitions by Event
    • Can zoom / pan the model to focus on a specific context
  • In-model interactive simulation of the HFSM
    • Highlighting of execution pathways during event handling
    • Can disable / enable transitions
    • User can select which guards are true when transitions have guards
    • Currently active state tree branch shown including all event actions
    • Simulator informs the user if the model is not well formed
  • In-model collaborative code attribute editing for the HFSM (using the CodeEditor)
  • Model transformation plugin to produce executable C++ code from the HFSM (with more languages coming soon!)
    • Disabled transitions are not generated
    • Model is checked before being generated

Links

HFSM Design Studio

Website: https://github.com/finger563/webgme-hfsm

Wiki: https://github.com/finger563/webgme-hfsm/wiki

Videos: https://cps-vo.org/group/hfsm/videos

Contact: William Emfinger