如何在Boost :: Statechart中添加转换延迟

时间:2013-07-05 14:38:05

标签: c++ boost state-machine boost-statechart

如何在Boost状态图中实现非阻塞转换延迟?

1 个答案:

答案 0 :(得分:0)

我看到两种解释问题的方法。如果要使用http://www.boost.org/doc/libs/1_55_0/libs/statechart/doc/tutorial.html#AsynchronousStateMachines

实现异步状态机

否则,如果您想延迟转换,您可以实现一个始终丢弃事件的自定义转换,但设置一个带有异步回调的计时器,该回调会发布一个不同的事件,导致转换在以后发生。您可能不希望在此期间处理事件。因此,您可以转换到WaitingToTransition状态而不是丢弃该事件,该状态会延迟除计时器回调中的所有事件之外的所有事件。如果您不想在延迟转换之前调用OnExit操作,则可以将WaitingToTransition状态添加为子状态以及不执行任何初始子状态。

如果这些答案都不符合您的要求,请提供您想要做的更多信息。