使用默认转移来指定初始子状态活动
默认转移指定当系统不明确要进入两个或多个相邻的互斥 (OR) 状态中哪个状态时要进入的状态。默认转移具有目标对象,但是没有源对象。例如,默认转移指定在缺少任何其他信息(例如历史结点)的情况下,系统默认进入互斥 (OR) 分解类型的父状态的哪个子状态。默认转移也可以指定默认情况应进入结点。
绘制默认转移
点击工具栏中的默认转移按钮,然后点击您想要作为默认转移之目标的状态或结点旁边的绘图区域中的某个位置。将鼠标拖放到目标对象以附加默认转移。在某些情况下,为默认转移添加标签会有帮助。
一个常见的编程错误是创建无默认转移的多个互斥 (OR) 状态。缺少默认转移时,不会指示哪个状态默认变为激活。注意,当您在状态不一致选项处于启用状态的情况下进行模型仿真时,会标记此错误。
为默认转移添加标签
您可以像为其他转移添加标签一样来为默认转移添加标签。例如,在某一情况下,您可能想指定某状态在某事件发生后应变为激活。在另一情况下,您可能会希望指定基于转移的目标来执行特定动作。
提示
为默认转移添加标签时,确保至少存在一个有效的默认转移。否则,图会转移至不同的状态。
默认转移示例
下面提供了在 Stateflow® 图中使用默认转移的示例:
默认状态转移示例
下例显示了转至状态的默认转移。
到状态 PowerOff
的默认转移确保当图被唤醒时,状态变为激活。有关详细信息,请参阅Control Chart Execution by Using Default Transitions。
默认结点转移示例
下例显示了转至结点的默认转移。
该连接结点的默认转移定义在进入 Stateflow 图后,将根据每个转移段的条件来确定目标。
请参阅Default Transition to a Junction了解有关此表示法语义的信息。
带标签的默认转移示例
下例显示了带标签的默认转移。
当图唤醒后,数据 p
和 v
会分别初始化为 10 和 15。
请参阅Labeled Default Transitions了解有关此表示法语义的详细信息。