Когда существует допустимый переход из состояния, то состояние отмечено для выхода. Состояние отмечено для выхода одним из этих способов:
Исходящий переход происходит в государственной границе.
Исходящий переход пересекает государственную границу.
Целевое состояние является параллельным дочерним элементом состояния активированного состояния.
Эта блок-схема показывает прогрессию событий в Stateflow® для выхода из состояния. В этой блок-схеме текущее состояние относится к состоянию, в котором происходят решение или процесс.
Exit
действия для состояния выполняются, когда состояние активно, и существует допустимый переход от состояния. Состояние выполняет свой exit
действия прежде, чем стать неактивным.
Выйдите действиям предшествует префиксный exit
или ex
, сопровождаемый необходимым двоеточием (:
), и затем сопровождаемый одним или несколькими действиями. Разделите несколько действий возвратом каретки, точка с запятой (;
), или запятая (,
).
В этом примере диаграмма Stateflow инициализируется и entry
действия выполняются для StateA
и StateA1
. Для этого графика, during
действия для этого графика произошли дважды. Происходит новый временной шаг, и затем график просыпается.
Следующим Рабочий процесс для Выполнения диаграммы Stateflow и Рабочий процесс для Оценки Переходов, StateB
был отмечен для записи. StateA
источник перехода. На этом временном шаге x = 5
, y = 2
, и z = 0
.
Следующим блок-схема для выходных действий состояния до графика засыпает, шаги выполнения для этого графика находятся в этом порядке:
StateA
не сверхсостояние StateB
.
Выполните выходные действия StateA
и отметьте StateA
как неактивный. Теперь z = 1
.
StateA
не имеет родительского состояния.
Перейдите к действиям входа.
Эти шаги завершают exit
рабочий процесс для StateA
. Однако график еще не спит.
Выполните рабочий процесс для ввода графика или состояния для StateB
завершать временной шаг.
Суперпереход является переходом между разными уровнями в графике. Суперпереход может быть между состоянием в графике верхнего уровня и состоянием в одном из его подсостояний, или между состояниями, находящимися в различных подсостояниях. Можно создать суперпереходы, которые охватывают любое количество уровней в графике.
Когда из состояния выходят посредством суперперехода, после того, как выходные действия для источника перехода выполняются, его сверхсостояния отмечены неактивные, и выходные действия сверхсостояний выполняются. В этом примере, StateA2
отмечен для exit
и StateB1
отмечен для entry
. На данном этапе x = 5
, y = 5
, и z = 0
.
Следующим Рабочий процесс для Ввода Графика или состояния, пока график не засыпает, шаги выполнения для выхода из StateA2
состояния находятся в этом порядке:
StateA2
не сверхсостояние целевого состояния (StateB1
).
Выполните exit
действия для StateA2
и отметьте StateA2
как неактивный.
StateA2
действительно имеет родительское состояние, StateA
.
StateA
не сверхсостояние целевого состояния (StateB1
).
Выполните exit
действия для StateA
, и отметьте StateA
как неактивный.
StateA
не имеет родительского состояния.
Эти действия завершают exit
рабочий процесс для StateA2
и StateA
. Однако график еще не спит.
Выполните рабочий процесс для ввода графика или состояния для StateB
и StateB1
завершать временной шаг.