如何在状态中创建状态机?
How do you create a state machine within a state?
我想要一个没有太多状态的顶级状态图。因此,通常(即在纯 C++ 中)每个状态本身都可以是状态机。我如何在 Rhapsody 中执行此操作?
例如:我有状态图:
*--> init --> do_stuff --> finished
当它进入 do_stuff 状态时,我希望它下降到 do_stuff_statechart(我猜这只是另一个带有状态图的正常 class):
*--> read_config --> check_config --> init_reconfig --> doing_config --> exit
^ |
| |
+---------------+
当子状态图到达exit
时,它应该返回顶层状态图并进入完成状态...
我真的不知道该怎么做。我的意思是我可以将一个事件调用到另一个状态图中并等待它响应 - 但是 "diagrammatic" 的方法在哪里 link do_stuff 状态到 do_stuff_statechart?
有这方面的例子吗?或者是否有 "pattern" 可以遵循来做到这一点?
嗯,如果你需要一个 state-machine 来处理 state-machine 中的一个状态,你有两个选择:
强制从 state-machine 完成 运行,然后再返回主 state-machine 的管理器。
这完全抽象了您使用主 state-machine 从属 state-machine 的事实,但降低了透明度,可能需要更多资源,并且可能对可中断性产生影响。
向 state-machine 添加一些额外的状态,它被 master state-machine 处理为不透明,但将被 slave state-machine 用来处理自己.
您仍然必须将节点划分为设置、运行,也许还需要拆卸。除此之外,它需要更多的调度才能到达右边 sub-state-handler.
通过用从节点 state-machine.
的所有节点替换主节点 state-machine 中的节点来展平 state-space
唯一的缺点就是slavestate-machine和masterstate-machine基本没有绝缘剩下
现在,由您来决定什么是最适合您的 use-case。
在 Rhapsody 中,当您 right-click 状态图中的状态时,您应该会在上下文菜单中看到一个名为 "Create Sub-Statechart" 的选项。
这是你要找的吗?
我想要一个没有太多状态的顶级状态图。因此,通常(即在纯 C++ 中)每个状态本身都可以是状态机。我如何在 Rhapsody 中执行此操作?
例如:我有状态图:
*--> init --> do_stuff --> finished
当它进入 do_stuff 状态时,我希望它下降到 do_stuff_statechart(我猜这只是另一个带有状态图的正常 class):
*--> read_config --> check_config --> init_reconfig --> doing_config --> exit
^ |
| |
+---------------+
当子状态图到达exit
时,它应该返回顶层状态图并进入完成状态...
我真的不知道该怎么做。我的意思是我可以将一个事件调用到另一个状态图中并等待它响应 - 但是 "diagrammatic" 的方法在哪里 link do_stuff 状态到 do_stuff_statechart?
有这方面的例子吗?或者是否有 "pattern" 可以遵循来做到这一点?
嗯,如果你需要一个 state-machine 来处理 state-machine 中的一个状态,你有两个选择:
强制从 state-machine 完成 运行,然后再返回主 state-machine 的管理器。
这完全抽象了您使用主 state-machine 从属 state-machine 的事实,但降低了透明度,可能需要更多资源,并且可能对可中断性产生影响。向 state-machine 添加一些额外的状态,它被 master state-machine 处理为不透明,但将被 slave state-machine 用来处理自己.
您仍然必须将节点划分为设置、运行,也许还需要拆卸。除此之外,它需要更多的调度才能到达右边 sub-state-handler.通过用从节点 state-machine.
的所有节点替换主节点 state-machine 中的节点来展平 state-space 唯一的缺点就是slavestate-machine和masterstate-machine基本没有绝缘剩下
现在,由您来决定什么是最适合您的 use-case。
在 Rhapsody 中,当您 right-click 状态图中的状态时,您应该会在上下文菜单中看到一个名为 "Create Sub-Statechart" 的选项。
这是你要找的吗?