状态流之Transitions

发布时间:2024年01月17日

Transitions

Transitions是一条带有箭头的线,用于将一个图形对象链接到另一个图形。在大多数情况下,转换表示系统从一个模式(状态)对象到另一个模式的过程。转换通常连接源对象和目标对象。源对象是转换开始的地方,目标对象是转换结束的地方。下图显示了从源状态B到目标状态A的转换。
在这里插入图片描述

Junctions将过渡划分为多个Transition段。在这种情况下,完整的Transition由从起点状态到终点状态的段组成。在确定完整Transition的有效性的过程中对每个片段进行评估。

以下示例有两个分段转换:一个从“on”状态转换为“off”状态,另一个从状态“on”转换为其自身:

在这里插入图片描述

默认转换是一种没有源对象的特殊类型的转换。

Transition Hierarchy

转换不能像状态那样包含其他对象。但是,状态包含转换。转换的层次结构是根据转换的父级、源级和目标级来描述的。父级是包含转换的源和目标的最低级别。考虑下例中转换的父级
在这里插入图片描述下表解析了上一示例中每个转换的父级。/字符表示图表。状态层次结构中的每个级别都由句点(.)字符分隔。
在这里插入图片描述

Transition Label Notation

Transition 的特征在于它的标签。标签可以由事件、条件、条件操作和/或转换操作组成。这个字符是默认的转换标签。转换标签具有以下通用格式:
event[condition]{condition_action}/transition_action

您可以将event、condition、condition_action和transition_action的名称替换为适当的内容,如示例“转换标签示例”中所示。标签的每个部分都是可选的
在这里插入图片描述

Event Trigger

指定导致进行转换的事件,前提是条件(如果指定)为true。指定事件是可选的。没有事件表示在发生任何事件时进行转换。使用OR逻辑运算符(|)指定多个事件。
在前面的例子中,只要条件[Off_count==0]为true,事件E的广播就会触发从On到Off的转换.

Condition

指定一个布尔表达式,当为true时,该表达式将验证指定事件触发器要进行的转换。将条件括在方括号([])中。
在前面的示例中,条件[off_count==0]必须计算为true,才能执行条件操作,才能使从源到目标的转换有效。

Condition Action

遵循转换的条件,并用大括号({})括起来。一旦条件被评估为真,并且在转换目的地被确定为有效之前,它就会被执行。如果未指定任何条件,则隐含条件的计算结果为true,并执行条件操作。
在前面的示例中,如果条件[off_count==0]为true,则立即执行条件操作off_count++。

Transition Action

如果条件(如果指定)为true,则在确定转换目标有效后执行。如果转换由多个段组成,则只有在确定到最终目的地的整个转换路径有效时,才会执行转换操作。在转换操作之前使用一个/。

在前面的示例中,如果条件[off_count==0]为true,并且目标状态off有效,则执行转换动作Light_off。

Valid Transitions

在大多数情况下,当转换的源状态为活动且转换标签有效时,转换是有效的。默认转换不同,因为没有源状态。默认转换到子状态的有效性是在转换到其超级状态时评估的,假设超级状态是活动的。此标记标准适用于默认转换和普通大小写转换。下表列出了有效转换标签的可能组合
在这里插入图片描述

文章来源:https://blog.csdn.net/ptw1992/article/details/135653904
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。