WHAT ARE STATE MACHINES?
State machines are the description of a thing's lifeline. They describe the
different stages of the lifeline, the events influencing it, and what it does
when a particular event is detected at a particular stage. They offer the
complete specification of the dynamic behavior of the thing.
MOTIVATION
Provable Programs
Minimal Code
Small Executable
Easy integration with inotify
Component style object files
Little syntactic noise as possible
Faster Execution Time
Reduce dependencies
Maintainable and fairly easy to work on
Nice for embedded Linux system
Easy deploy against common boxes in cloud
STATE MACHINE, STATE, TRANSITION, EVENT
THIS IS C++ CODE … REALLY THIS IS THE PROGRAM
BOOST_MSM_EUML_TRANSITION_TABLE((
Playing == Stopped + play [some_guard] / (some_action , start_playback) ,
Open == Stopped + open_close/ open_drawer ,
Stopped == Stopped + stop ,
Empty == Open + open_close / close_drawer ,
Open == Empty + open_close / open_drawer ,
Stopped == Empty + cd_detected [good_disk_format] / store_cd_info),transition_table
OKAY SO THERE IS MORE TO DO LETS TAKE A
LOOK
Link to State File
Link to Events
Link to Finite State Machine
Link to Actions
Link to Transition
Link to inotify
Link to main
Link to Makefile

PDQ C++ Uml state Machines

  • 2.
    WHAT ARE STATEMACHINES? State machines are the description of a thing's lifeline. They describe the different stages of the lifeline, the events influencing it, and what it does when a particular event is detected at a particular stage. They offer the complete specification of the dynamic behavior of the thing.
  • 3.
    MOTIVATION Provable Programs Minimal Code SmallExecutable Easy integration with inotify Component style object files Little syntactic noise as possible Faster Execution Time Reduce dependencies Maintainable and fairly easy to work on Nice for embedded Linux system Easy deploy against common boxes in cloud
  • 4.
    STATE MACHINE, STATE,TRANSITION, EVENT
  • 6.
    THIS IS C++CODE … REALLY THIS IS THE PROGRAM BOOST_MSM_EUML_TRANSITION_TABLE(( Playing == Stopped + play [some_guard] / (some_action , start_playback) , Open == Stopped + open_close/ open_drawer , Stopped == Stopped + stop , Empty == Open + open_close / close_drawer , Open == Empty + open_close / open_drawer , Stopped == Empty + cd_detected [good_disk_format] / store_cd_info),transition_table
  • 7.
    OKAY SO THEREIS MORE TO DO LETS TAKE A LOOK Link to State File Link to Events Link to Finite State Machine Link to Actions Link to Transition Link to inotify Link to main Link to Makefile