分层状态机 (HSM) 操作的执行顺序

Execution Order of Hierarchical State Machine (HSM) Actions

实际上,我想验证有关 HSM 的执行顺序。 下图是真的吗?

我想问题是关于图表中存在的独特过渡

自转

没有到s2的过渡,所以当发生过渡时不可能在s2。转换是外部的,所以 s1ExitAction 然后 T1TransAction 然后 s1EnterAction

假设有一个额外的初始伪状态和从它到 s2 的转换,那么执行就是你指定的那个。

如果我们处于 s2 因为隐藏的转换不是来自隐藏的初始伪状态那么执行是 s2ExitAction 然后s1ExitAction 然后 T1TransAction 然后 s1EnterAction

外部转换 A

假设转换至少发生第二次,那么执行就是你指定的那个,否则转换发生在 s1 并且执行是 s1ExitAction 然后 t1TransAction 然后 s1EnterAction 然后 s2EnterAction

局部转换A

假设转换至少第二次发生,或者我们由于隐藏转换而处于 s2,那么执行就是您指定的那个,否则转换发生在在 s1 中执行 t1TransAction 然后 s2EnterAction

外部转换 B

没有过渡到 s2 所以不可能在 s2 然后就不可能进行过渡。

假设有一个额外的初始伪状态和从它到 s2 的转换,那么执行就是你指定的那个。

如果我们处于 s2 因为隐藏的转换不是来自隐藏的初始伪状态那么执行是 s2ExitAction 然后s1ExitAction 然后 t1TransAction 然后 s1EnterAction

局部转换 B

没有过渡到 s2 所以不可能在 s2 然后就不可能进行过渡。

假设有一个额外的初始伪状态和一个从它到 s2 的转换或者一个允许处于 s2 的隐藏转换然后执行是你指定的那个。

内部转换

没有过渡到s2所以不可能在s2时发生过渡,那么执行就是t1TransAction

假设有一个额外的初始伪状态和从它到 s2 的转换,那么执行就是你指定的那个。

如果我们处于 s2 因为隐藏的转换不是来自隐藏的初始伪状态那么执行是 s2ExitAction 然后t1TransAction