主要内容

内部过渡

内部过渡是不退出源状态的转换。当为具有排他(或)分解的超级状态定义时,内部转换非常强大。使用内部转换可以大大简化状态流®图表,如以下示例所示:

在使用内部转换之前

此图表是如何使用内部转换简化逻辑的示例。

任何事件发生并唤醒状态流程图。到连接连接的默认转换是有效的。转换的目标由[c1>0][c2>0]. 如果[c1>0]是真的,过渡到A1这是真的。如果[c2>0]是真的,过渡到A2这是有效的。如果两者都没有[c1>0]也没有[c2>0]是真的,过渡到A3这是有效的。三者之间的转换A1,A2A3决定于E,[c1>0][c2>0].

使用内部过渡到连接连接后

此示例使用到连接连接的内部转换简化了前面的示例。

发生事件并唤醒图表。到连接连接的默认转换有效。转换的目标由[c1>0][c2>0].

您可以使用内部转换来代替原始示例中所有状态之间的转换,从而简化图表。如果状态A.已激活,内部转换用于重新评估状态的哪个子状态A.就是要积极主动。当事件E发生时,内部转换可能是有效的。如果[c1>0]是真的,过渡到A1这是有效的。如果[c2>0]是真的,过渡到A2这是有效的。如果两者都没有[c1>0]也没有[c2>0]是真的,过渡到A3有效。此图表设计比上一个简单。

笔记

当使用到连接连接的内部转换时,活动子状态可以在该子状态的转换条件有效时退出和重新进入。例如,如果子状态为A1活跃且[c1>0]是真的,过渡到A1这是有效的。在这种情况下:

  1. 退出操作A1执行并完成。

  2. A1变得不活跃。

  3. A1变得活跃。

  4. 进入行动A1执行并完成。

看见处理第一个事件,内部转换为连接连接有关此符号的语义的更多信息。

使用到历史连接的内部转换

此示例显示了到历史连接的内部转换。

状态电源开高最初是活动的。当事件重置发生时,到历史连接的内部转换有效。因为内部转换是有效的,所以当前处于活动状态,电源开高,则退出。当处理到历史交叉点的内部转换时,最后一个激活状态,电源开高,变为活动状态(重新输入)。如果电源开低在同样的情况下也很活跃,电源开低将因此退出并重新进入。本例中的内部转换相当于在两个面上绘制外部自循环转换电源开低电源开高.

看见历史交叉点示例例如,使用历史连接的另一个示例。

看见向历史交汇点的内在过渡有关此符号的语义的更多信息。