内部过渡
一个内部过渡是不退出源状态的过渡。对于具有独家(或)分解的超级遗产定义时,内部过渡是强大的。内部过渡的使用可以大大简化状态流®图表,如以下示例所示:
在使用内部过渡之前
该图是如何使用内部过渡简化逻辑的一个示例。
任何事件都会发生并唤醒状态流图。默认过渡到结缔组织有效。过渡的目的地由[C1> 0]
和[C2> 0]
。如果[C1> 0]
是真的,过渡到A1
是真的。如果[C2> 0]
是真的,过渡到A2
已验证。如果两者都没有[C1> 0]
也不[C2> 0]
是真的,过渡到A3
已验证。之间的过渡A1
,,,,A2
, 和A3
由e
,,,,[C1> 0]
, 和[C2> 0]
。
在使用内部过渡到结缔路连接后
此示例使用内部过渡到结缔连接处简化了前面的示例。
事件发生并唤醒图表。默认过渡到结缔组织有效。过渡的目的地由[C1> 0]
和[C2> 0]
。
您可以通过使用内部过渡代替原始示例中所有状态之间的过渡来简化图表。如果状态一个
已经活跃,内部过渡用于重新评估状态的哪个一个
要活跃。事件时e
发生,内部过渡是有效的。如果[C1> 0]
是真的,过渡到A1
已验证。如果[C2> 0]
是真的,过渡到A2
已验证。如果两者都没有[C1> 0]
也不[C2> 0]
是真的,过渡到A3
已验证。该图表设计比上一个更简单。
笔记
当您使用内部过渡到结缔连接处时,当该替换的过渡条件有效时,主动替换可以退出和重新进入。例如,如果取代A1
是活跃的[C1> 0]
是真的,过渡到A1
已验证。在这种情况下:
退出动作
A1
执行并完成。A1
变得不活跃。A1
变得活跃。入境操作
A1
执行并完成。
看处理第一个事件,内部过渡到结缔路连接有关此表示法语义的更多信息。
使用内部过渡到历史连接
此示例显示了向历史交界处的内部过渡。
状态power_on.high
最初是活跃的。事件时重置
发生,内部过渡到历史连接是有效的。因为内部过渡是有效的,所以当前活跃状态,power_on.high
,退出。当处理到历史连接的内部过渡时,最后一个活动状态,power_on.high
,变得活跃(重新输入)。如果power_on.low
在相同情况下活跃power_on.low
结果将退出并重新进入。在此示例中的内部过渡等同于在两者上绘制外部自循环过渡power_on.low
和power_on.high
。
看历史连接示例的使用对于使用历史连接点的另一个示例。
看内部过渡到历史交界处有关此表示法语义的更多信息。