给自己开发了一套有限状态自动机类库,满足基本的状态转移需求,有需要的朋友拿去玩吧。

boost库中自动机还是比较强大的,不过确实比较大,而且我的项目要求可在运行时修改状态机的配置。

 

源码下载地址:

qfFSM 百度网盘

C++版本:qfFSM_for_cpp_v1.2.zip

Java版本:qfFSM_for_java_v1.2.zip

JavaScript版本:qfFSM_for_javascript_v1.2.zip

C#版本:qfFSM_for_csharp_v1.2.zip

Unity3D(C#)版本:qfFSM_for_unity3d_csharp_v1.2.zip

压缩包内含有一个简单的 StopWatch例程,UML状态图如下:

类库非常小,文件列表及说明如下:

qfState.h/.cpp:状态

qfStateMachine.h/.cpp:状态机,由状态、事件、转移规则组成,继承自qfState,可作为另一个状态机的子状态

qfEvent.h:事件,状态机的激励

PropertyBag.h:属性包,每个qfEvent都有一个属性包

qfFSM.h/.cpp:qfFsmLogic类,对qfStateMachine进行封装,提供一个大粒度状态机基类,状态机开始、停止、重置,状态机子状态管理。

================================

[Read the rest of this entry...]