Этот пример показывает то, что происходит при обработке трех событий с помощью внутреннего перехода в исключительном (OR) состояние.
Этот пример показывает поведение внутреннего перехода. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. A
состояния активен. Условие [C_one]
является ложным. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Обнаруживается потенциально допустимый переход от A
состояния, чтобы утвердить B
. Однако переход не допустим, потому что [C_one]
является ложным.
A
состояния во время действий (durA()
) выполняется и завершается.
A
состояния проверяет свои дочерние элементы на допустимый переход и обнаруживает допустимый внутренний переход.
A
состояния остается активным. Внутреннее действие перехода A_two
выполняется и завершается. Поскольку это - внутренний переход, выход A
состояния и действия записи не выполняются.
График возвращается ко сну.
Эта последовательность завершает выполнение этого графика Stateflow®, сопоставленного с событием E_one
.
Используя предыдущий пример, этот пример показывает то, что происходит, когда второе событие E_one
происходит. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. A
состояния все еще активен. Условие [C_one]
верно. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
.
Переход от A
состояния, чтобы утвердить B
теперь допустим, потому что [C_one]
верен.
Выходные действия A
состояния (exitA()
) выполняются и завершаются.
A
состояния отмечен неактивный.
Действие перехода A_one
выполняется и завершается.
B
состояния отмечен активный.
Действия записи B
состояния (entB()
) выполняются и завершаются.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
.
Используя предыдущий пример, этот пример показывает то, что происходит, когда третье событие, E_two
, имеет место. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. B
состояния теперь активен. Условие [C_two]
является ложным. Событие E_two
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two
.
Обнаруживается потенциально допустимый переход от B
состояния, чтобы утвердить A
. Переход не допустим, потому что [C_two]
является ложным. Однако активный B
состояния имеет допустимый переход самоцикла.
Выходные действия B
состояния (exitB()
) выполняются и завершаются.
B
состояния отмечен неактивный.
Действие перехода самоцикла, A_four
, выполняется и завершается.
B
состояния отмечен активный.
Действия записи B
состояния (entB()
) выполняются и завершаются.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_two
. Этот пример показывает различие в поведении между переходами самоцикла и внутренним.
Этот пример показывает поведение обработки повторных событий с помощью внутреннего перехода к соединительному соединению.
Этот пример показывает поведение внутреннего перехода к соединительному соединению для первого события. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. A1
состояния активен. Условие [C_two]
верно. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход на корневом уровне в результате E_one
. Нет никакого допустимого перехода.
A
состояния во время действий (durA()
) выполняется и завершается.
A
состояния проверяется для допустимых переходов и обнаруживает, что существует допустимый внутренний переход к соединительному соединению.
Условия оценены, чтобы определить, допустим ли один из переходов. Поскольку неявное упорядоченное расположение применяется, сегменты, маркированные условием, оценены перед немаркированным сегментом. Оценка начинает с 12-часовой позиции по соединению и прогрессирует в по часовой стрелке способ. Поскольку [C_two]
верен, внутренний переход к соединению и затем утверждать, что A
.A2
допустим.
A
состояния.A1
выходные действия (exitA1()
) выполняется и завершается.
A
состояния.A1
отмечен неактивный.
A
состояния.A2
отмечен активный.
A
состояния.A2
действия записи (entA2()
) выполняется и завершается.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
, когда A1
состояния активен и условие, [C_two]
верен.
Продолжая предыдущий пример, этот пример показывает поведение внутреннего перехода к соединению, когда второе событие E_one
происходит. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. A2
состояния активен. Условие [C_two]
верно. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход на корневом уровне в результате E_one
. Нет никакого допустимого перехода.
A
состояния во время действий (durA()
) выполняется и завершается.
A
состояния проверяется для допустимых переходов и обнаруживает допустимый внутренний переход к соединительному соединению.
Условия оценены, чтобы определить, допустим ли один из переходов. Поскольку неявное упорядоченное расположение применяется, сегменты, маркированные условием, оценены перед немаркированным сегментом. Оценка начинает с 12-часовой позиции по соединению и прогрессирует в по часовой стрелке способ. Поскольку [C_two]
верен, внутренний переход к соединению и затем утверждать, что A.A2
допустим.
A
состояния.A2
выходные действия (exitA2()
) выполняется и завершается.
A
состояния.A2
отмечен неактивный.
A
состояния.A2
отмечен активный.
A
состояния.A2
действия записи (entA2()
) выполняется и завершается.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
, когда A2
состояния активен и условие, [C_two]
верен. Для состояния с допустимым внутренним переходом из активного подсостояния можно выйти и сразу повторно ввести.
Этот пример показывает поведение внутреннего перехода к соединению истории.
Первоначально, график спит. A.A1
состояния активен. Информация об истории существует, потому что сверхдержава A
активна. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Нет никакого допустимого перехода.
A
состояния во время действий выполняется и завершается.
A
состояния проверяется для допустимых переходов и обнаруживает, что существует допустимый внутренний переход к соединению истории. На основе информации об истории последнее активное состояние, A.A1
, является целевым состоянием.
Выходные действия A.A1
состояния выполняются и завершаются.
A.A1
состояния отмечен неактивный.
A.A1
состояния отмечен активный.
Действия записи A.A1
состояния выполняются и завершаются.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
, когда существует внутренний переход к соединению истории, и A.A1
состояния активен. Для состояния с допустимым внутренним переходом из активного подсостояния можно выйти и сразу повторно ввести.