我正在使用Boost 1.64.0 MSM库来生成分层状态机。为了测试转换机制,我实现了像这样的状态机
+------------------------------------------------+
| S |
| +-------------+ +-------------+ |
| | S1 | | S2 | |
| | +-------+ | | +-------+ | |
| | | S11 | | | | S21 | | |
| | +-------+ | | +-------+ | |
| +-------------+ +-------------+ |
| |
+------------------------------------------------+
那么如何定义从S11到S21的转换,根据the same situation described in wiki,转换执行序列应该是'退出S11' - > '退出S1' - > '输入S2' - > '进入S21'。
答案 0 :(得分:0)
根据文件https://www.boost.org/doc/libs/1_66_0/libs/msm/doc/HTML/ch03s02.html#d0e875,
所以你不能明确退出S11。
您可以使用退出点伪状态而不是显式退出。我建议使用入口点伪状态而不是显式条目。
以下是入口点伪状态的示例代码
http://redboltz.wikidot.com/entry-point-pseudo-state
和退出点伪状态。