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