Этот пример показывает поведение простого действия условия в пути к переходу с несколькими сегментами. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Первоначально, график спит. A
состояния активен. Условия C_one
и C_two
являются ложными. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Обнаруживается допустимый сегмент перехода от A
состояния до соединительного соединения. Действие условия A_one
обнаруживается на допустимом сегменте перехода и сразу выполняется и завершается. A
состояния все еще активен.
Поскольку условия на сегментах перехода возможным местам назначения являются ложными, ни один из полных переходов не допустим.
A
состояния во время действий (durA()
) выполняется и завершается.
A
состояния остается активным.
График возвращается ко сну.
Эта последовательность завершает выполнение этого графика Stateflow®, сопоставленного с событием E_one
, когда A
состояния первоначально активен.
Этот пример показывает поведение простого условия и действия перехода, заданного на переходе от одного исключительного (OR) состояние другому.
Первоначально, график спит. A
состояния активен. Условие C_one
верно. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Обнаруживается допустимый переход от A
состояния, чтобы утвердить B
. Условие C_one
верно. Действие условия A_one
обнаруживается на допустимом переходе и сразу выполняется и завершается. A
состояния все еще активен.
Выходные действия A
состояния (ExitA()
) выполняются и завершаются.
A
состояния отмечен неактивный.
Действие перехода A_two
выполняется и завершается.
B
состояния отмечен активный.
Действия записи B
состояния (entB()
) выполняются и завершаются.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
, когда A
состояния первоначально активен.
Действия условия и соединительные соединения используются, чтобы разработать построение цикла for
. Этот пример показывает использование действия условия и соединительного соединения, чтобы создать построение цикла for
. График использует неявное упорядоченное расположение исходящих переходов (см. Неявное Упорядоченное расположение).
Смотрите Построение Цикла for, чтобы видеть поведение этого примера.
Этот пример показывает, как использовать действия условия, чтобы широковещательно передать события сразу, чтобы быть параллельным (AND) состояниям. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Смотрите Широковещательные События в Действиях Условия, чтобы видеть поведение этого примера.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте оператор send
для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к 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
состояния активен.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте оператор send
для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none
, warning
или error
. Настройкой по умолчанию является warning
.