CXX 库,用于具有运行时操作的有限状态机/自动机



我正在寻找一个在状态机上实现有限状态机(或自动机)和运行时操作的 CXX 库?

在SageMath中,有一个模块有限状态机正是我正在寻找的。

我查看了以下库。但在所有这些中,状态机都应该在代码中指定。

  • 有限状态机(前Boost.FSM)

  • TinyFSM

  • The Boost Statechart Library (boost::fsm)

  • 提升元状态机 (MSM)

但我想add_state(s)delete_state(s)add_transition(s1,s2,input,output)delete_transition(t)或类似的东西,在运行时

是否有可用的 CXX 库?

Qt的QStateMachine可以做到这一点。

首先,创建一个状态机。

QStateMachine sm;

然后,创建状态。

QState *s1 = new QState();
QState *s2 = new QState();

您可以按如下方式向状态添加转换:

//                Event source  Event        Transition to state
s1->addTransition(button, SIGNAL(clicked()), s2);

最后,将状态机添加到状态中,如下所示:

sm.addState(s1);

这意味着您可以动态创建状态机、状态和转换。

这是一份文档:

http://doc.qt.io/qt-5/statemachine-api.html

最新更新