ADBLib  0.5
A simple library for rapid robot code development
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Pages
ADBLib::FiniteStateMachine Class Reference

#include <FiniteStateMachine.h>

Collaboration diagram for ADBLib::FiniteStateMachine:

Public Member Functions

 FiniteStateMachine ()
 
virtual void init (FSMTransition *newStateTable, FSMState *initState)
 
virtual void update ()
 Updates the current state and applies transitions when needed. Uses multimaps to enhance transition speed. More...
 
virtual ~FiniteStateMachine ()
 

Protected Attributes

multimap< FSMState
*, FSMTransition
transitions
 
FSMStatecurrentState
 

Constructor & Destructor Documentation

ADBLib::FiniteStateMachine::FiniteStateMachine ( )
virtual ADBLib::FiniteStateMachine::~FiniteStateMachine ( )
inlinevirtual

Member Function Documentation

void ADBLib::FiniteStateMachine::init ( FSMTransition newStateTable,
FSMState initState 
)
virtual

Sets up the finite state machine with a new state table and a state to start from.

Parameters
newStateTableAn array of FSMTransitions - the state table from which transition data will be drawn.
initStateThe state from which the FSM should start.
Note
This process is not completely inexpensive (especially for large state tables). It converts an array to an std::multimap.

Here is the call graph for this function:

void ADBLib::FiniteStateMachine::update ( )
virtual

Updates the current state and applies transitions when needed. Uses multimaps to enhance transition speed.

Here is the call graph for this function:

Member Data Documentation

FSMState* ADBLib::FiniteStateMachine::currentState
protected
multimap<FSMState*, FSMTransition> ADBLib::FiniteStateMachine::transitions
protected

The documentation for this class was generated from the following files: