Condition Action Behavior
此示例显示了具有多个分段的转换路径中的简单条件操作的行为。该图表使用传出转换的隐式排序
起初,chart处于休眠状态。状态A处于活动状态。条件C_one和C_two为false。事件E_one发生并唤醒chart,该图表通过层次结构从根向下处理事件:
1.图表根检查E_one的结果是否存在有效的转换。检测到从状态A到连接点的有效过渡段。在有效转换段上检测到条件动作A_one,并立即执行和完成。状态A仍然处于激活状态。
2.由于到可能目的地的转换段上的条件为假,因此没有一个完整的转换是有效的。
3 状态A during actions (durA()) 执行并完成。
状态A仍然处于活动状态。
4.chart回到睡眠状态。
Condition and Transition Action Behavior
起初,chart处于休眠状态。状态A处于激活状态。条件C_one为真。事件E_one发生并唤醒图表,该图表通过层次结构从根向下处理事件:
1.chart根检查E_one的结果是否存在有效的转换。检测到从状态A到状态B的有效转换。条件C_one为真。在有效转换上检测到条件动作A_one,并立即执行和完成。状态A仍然处于激活状态。
2.状态A退出操作(ExitA())执行并完成。
3.状态A被标记为非激活态。
4.执行并完成转换动作A_ two。
5.状态B被标记为激活。
6.状态B entry actions (entB()) 执行并完成。
7.chart回到睡眠状态。
使用For循环创建条件操作
条件操作和连接点用于设计for循环构造。此示例显示使用条件操作和连接点来创建for循环构造。
使用条件操作将事件广播到并行(AND)状态
此示例显示如何使用条件操作将事件立即广播到并行(AND)状态。
避免循环行为
此示例显示了在使用事件广播作为条件操作时要避免的注释,因为语义会导致循环行为。
起初,图表处于休眠状态。State On处于活动状态。事件E_one发生并唤醒图表,该图表通过层次结构从根向下处理事件:
1.图表根检查E_one的结果是否存在有效的转换。
检测到从“on”状态到“off”状态的有效转换。
2.转换上的条件操作广播事件E_one。
3.在有效转换上检测到事件E_one,并立即执行。State On仍处于活动状态。
4.事件E_one的广播第二次唤醒图表。
5.转到步骤1。
步骤1到5继续以循环方式执行。指示与条件动作广播事件相同的事件的触发器的转换标签导致不可恢复的循环行为。当事件E_one被广播并且状态On处于活动状态时,此序列永远不会完成。