Этот пример показывает поведение действия простого условия в пути перехода с несколькими сегментами. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное упорядоченное расположение).
Изначально график спит. Конечные A
активно. Условия C_one
и C_two
являются ложными. Событийные E_one
происходит и пробуждает график, который обрабатывает событие из корня вниз через иерархию:
Корень графика проверяет, есть ли допустимый переход в результате E_one
. Допустимый сегмент перехода от A состояний
к соединительному соединению обнаружено. Действие условия A_one
обнаруживается в допустимом сегменте перехода и немедленно выполняется и завершается. Конечные A
все еще активен.
Поскольку условия для сегментов перехода к возможным адресатам являются ложными, ни один из полных переходов не является допустимым.
Конечные A
во время действий (durA()
) выполнить и завершить.
Конечные A
остается активным.
График возвращается в сон.
Эта последовательность завершает выполнение этого Stateflow® график, связанная со E_one
событий когда состояние
A
первоначально активно.
Этот пример показывает поведение простого условия и переходного действия, заданных при переходе от одного исключительного (OR) состояния к другому.
Изначально график спит. Конечные A
активно. Условие C_one
является true. Событийные E_one
происходит и пробуждает график, который обрабатывает событие из корня вниз через иерархию:
Корень графика проверяет, есть ли допустимый переход в результате E_one
. Допустимый переход от A состояния
в состояние B
обнаруживается. Условие C_one
является true. Действие условия A_one
обнаруживается при действительном переходе и немедленно выполняется и завершается. Конечные A
все еще активен.
Конечные A
выход действий (ExitA()
) выполнить и завершить.
Конечные A
помечен как неактивный.
Действие перехода A_two
выполняется и завершается.
Конечные B
отмечен как активный.
Конечные B
действия входа (entB()
) выполнить и завершить.
График возвращается в сон.
Эта последовательность завершает выполнение этой диаграммы Stateflow, связанной с событием E_one
когда состояние A
первоначально активно.
Действия условия и соединительные соединения используются для разработки for
Цикл конструкции. В этом примере показано использование действия условия и соединительного соединения для создания for
Цикл конструкции. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное упорядоченное расположение).
Смотрите Конструкция, чтобы увидеть поведение этого примера.
В этом примере показано, как использовать действия условия для немедленной трансляции событий к параллельным состояниям (AND). График использует неявное упорядоченное расположение параллельных состояний (см. Неявное упорядоченное расположение параллельных состояний).
Смотрите Broadcast Events in Condition Actions, чтобы увидеть поведение этого примера.
Совет
Избегайте использования неориентированных локальных трансляций событий. Неориентированные локальные трансляции событий могут вызвать нежелательное рекурсивное поведение на графике. Вместо этого отправляйте локальные события с помощью ориентированных трансляций. Для получения дополнительной информации смотрите Широковещание локальных событий для синхронизации параллельных состояний.
Можно задать уровень диагностики для обнаружения неориентированных локальных трансляций событий. В диалоговом окне Параметров конфигурации откройте панель Diagnostics > Stateflow и установите параметр Undirected event broadcasts на none
, warning
, или error
. Настройкой по умолчанию является warning
.
Этот пример показывает обозначение, которую следует избегать при использовании широковещания событий в качестве действий условия, потому что семантика результатов в циклическом поведении.
Изначально график спит. Конечные On
активно. Событийные E_one
происходит и пробуждает график, который обрабатывает событие из корня вниз через иерархию:
Корень графика проверяет, есть ли допустимый переход в результате E_one
.
Допустимый переход от On состояния
в состояние Off
обнаруживается.
Действие условия на переходе транслирует событие E_one
.
Событийные E_one
обнаруживается при действительном переходе, который немедленно выполняется. Конечные On
все еще активен.
Трансляция событий E_one
пробуждает график второй раз.
Перейдите к шагу 1.
Шаги 1-5 продолжают выполняться циклически. Метка перехода, указывающая на триггер того же события, что и широковещательное событие действия условия, приводит к невозвратному циклическому поведению. Эта последовательность никогда не завершается, когда E_one
события вещание и состояние
On
активно.
Совет
Избегайте использования неориентированных локальных трансляций событий. Неориентированные локальные трансляции событий могут вызвать нежелательное рекурсивное поведение на графике. Вместо этого отправляйте локальные события с помощью ориентированных трансляций. Для получения дополнительной информации смотрите Широковещание локальных событий для синхронизации параллельных состояний.
Можно задать уровень диагностики для обнаружения неориентированных локальных трансляций событий. В диалоговом окне Параметров конфигурации откройте панель Diagnostics > Stateflow и установите параметр Undirected event broadcasts на none
, warning
, или error
. Настройкой по умолчанию является warning
.