Этот пример показывает то, что происходит при обработке трех событий с помощью внутреннего перехода в исключительном (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
isvalid.
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
isvalid.
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
состояния активно. Для состояния с допустимым внутренним переходом из активного подсостояния можно выйти и сразу повторно ввести.