Выйдите из состояния

Когда существует допустимый переход из состояния, то состояние отмечено для выхода. Состояние отмечено для выхода одним из этих способов:

  • Исходящий переход происходит в государственной границе.

  • Исходящий переход пересекает государственную границу.

  • Целевое состояние является параллельным дочерним элементом состояния активированного состояния.

Рабочий процесс для выхода из состояния

Эта блок-схема показывает прогрессию событий в Stateflow® для выхода из состояния. В этой блок-схеме текущее состояние относится к состоянию, в котором происходят решение или процесс.

Выйдите из действий

Действия Exit для состояния выполняются, когда состояние активно, и существует допустимый переход от состояния. Состояние выполняет свои действия exit прежде, чем стать неактивным.

Выйдите действиям предшествуют префиксный exit или ex, сопровождаемый необходимым двоеточием (:), и затем сопровождаемые одним или несколькими действиями. Разделите несколько действий возвратом каретки, точка с запятой (;) или запятая (,).

Выйдите из примера состояния

В этом примере инициализируется диаграмма Stateflow, и действия entry выполняются для StateA и StateA1. Для этого графика действия during для этого графика произошли дважды. Происходит новый временной шаг, и затем график просыпается.

Следующим Рабочий процесс для Выполнения диаграммы Stateflow и Рабочий процесс для Оценки Переходят, StateB был отмечен для записи. StateA является источником перехода. На этом временном шаге x = 5, y = 2 и z = 0.

Следующим блок-схема для выходных действий состояния до графика засыпает, шаги выполнения для этого графика находятся в этом порядке:

  1. StateA не является сверхдержавой StateB.

  2. Выполните выходные действия StateA и отметьте StateA как неактивный. Теперь z = 1.

  3. StateA не имеет метрополии.

  4. Перейдите к действиям записи.

Эти шаги завершают рабочий процесс exit для StateA. Однако график еще не спит.

Выполните Рабочий процесс для Ввода Графика или состояния для StateB, чтобы завершить временной шаг.

Выйдите из состояния при помощи суперпереходов

Суперпереход является переходом между разными уровнями в графике. Суперпереход может быть между состоянием в графике верхнего уровня и состоянием в одном из его подграфиков, или между состояниями, находящимися в различных подграфиках на тех же или разных уровнях в графике. Можно создать суперпереходы, которые охватывают любое количество уровней в графике.

Когда из состояния выходят посредством суперперехода, после того, как выходные действия для источника перехода выполняются, его сверхдержавы отмечены неактивные, и выходные действия сверхдержав выполняются. В этом примере StateA2 отмечен для exit, и StateB1 отмечен для entry. На данном этапе x = 5, y = 5 и z = 0.

Следующим Рабочий процесс для Ввода Графика или состояния до графика засыпает, шаги выполнения для выхода из StateA2 состояния находятся в этом порядке:

  1. StateA2 не является сверхдержавой целевого состояния (StateB1).

  2. Выполните действия exit для StateA2 и отметьте StateA2 как неактивный.

  3. StateA2 действительно имеет метрополию, StateA.

  4. StateA не является сверхдержавой целевого состояния (StateB1).

  5. Выполните действия exit для StateA и отметьте StateA как неактивный.

  6. StateA не имеет метрополии.

Эти действия завершают рабочий процесс exit для StateA2 и StateA. Однако график еще не спит.

Выполните Рабочий процесс для Ввода Графика или состояния для StateB и StateB1, чтобы завершить временной шаг.

Похожие темы