分层状态机中的父状态机转换



我是分层状态机的新手。

当父状态转换为另一个状态时,子状态会发生什么情况? 它是否保持当前状态?

我想从称为正在运行的父状态

过渡到称为故障的父状态。 清除故障后,我想转换回运行状态并进入第一个子状态。

史蒂文

  1. 运行到错误:放置一个触发器,引用名为"EVT_Fault"的事件
  2. 例如,"低"和"高"是运行的两个子状态
  3. 将初始节点放入运行状态,目标为"低"
  4. 把一个从法鲁特到跑步的过渡,不要给过渡设置任何触发器。(这是完成过渡)

假设低是活动状态,触发EVT_Fault,发生以下顺序:

low.exit
running.exit
transition_running_to_fault.effect
fault.entry
(when entry finished, since there is completion transition)
fault.exit
transition_fault_to_running.effect
running.entry
transition_initial_to_low.entry

当父状态退出时,其子状态也应退出。

若要在重新进入父状态时实现子状态的

重新进入,您需要一个历史伪状态(深或浅,具体取决于子状态的深度)。

请参阅此处的示例:http://www.steelbreeze.net/state.js/#examples - 按两次"翻转"按钮会显示深厚的历史。

数字万用表

最新更新