Когда существует допустимый переход из состояния, то состояние отмечено для выхода. Состояние отмечено для выхода одним из этих способов:
Исходящий переход происходит в государственной границе.
Исходящий переход пересекает государственную границу.
Целевое состояние является параллельным дочерним элементом состояния активированного состояния.
Эта блок-схема показывает прогрессию событий в 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
, чтобы завершить временной шаг.