The EMC Finite State Machine (FSM) library is a free, with source-code, object-oriented Visual C++ class library for use in coding states, events, actions, transitions, and conditions necessary in programming and executing finite state machine behavior. The FSM library supports a litany of options to easily accommodate a broad variety of control logic needs. A precompiled Finite State Machine library DLL is available in the installation. This document describes the class definitions in the Finite State Machine library and provides examples of the use of the Finite State Machine software

Features:

  • Object oriented representation of finite state machines
  • Mealy or Moore state machines
  • Smart pointer handling of state, event and transition references. No memory leaks even though references are cross-linked.
  • Hierarchical states
  • Priority-based event-queuing (optional), head of event-queue insertion, and variable event handling per FSM update
  • Condition-based state transitions
  • Entry and Exit state actions
  • Multiple state actions per transition
  • Default activity when no events have occurred.
  • Synchronous and asynchronous event-handling