Этот пример показывает поведение широковещательных действий события в параллельных состояниях. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Первоначально, график спит. Параллель подутверждает A.A1.A1a
и A.A2.A2a
активны. Событие E_one
происходит и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход на корневом уровне в результате E_one
. Никакой допустимый переход не существует.
A
состояния
during
действия (durA()
) выполнитесь и завершитесь.
Дочерние элементы A
состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены слева направо и от начала до конца.
A.A1
состояния оценен сначала.
A.A1
состояния
during
действия (durA1()
) выполнитесь и завершитесь. A.A1
состояния выполняет и завершает
on
E_one
действие и широковещательное событие E_two
. during
и on
event_name
действия обрабатываются на основе их порядка внешнего вида в метке состояния:
Широковещательная передача события E_two
пробуждает график во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two
. Никакой допустимый переход не существует.
Состояние during
действия (durA()
) выполнитесь и завершитесь.
Состояние проверки его дочерние элементы для допустимых переходов. Никакие допустимые переходы не существуют.
Дочерние элементы А состояния оценены начиная с A.A1
состояния.
A.A1
состояния
during
действия (durA1()
) выполнитесь и завершитесь. A.A1
состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате
E_two
в A1
состояния.
A1a
состоянияduring
действия (durA1a()
Выполнение.
A.A2
состояния оценен.
A.A2
состояния
during
действия (durA2()
) выполнитесь и завершитесь. A.A2
состояния проверки на допустимые переходы.
A.A2
состояния имеет допустимый переход в результате
E_two
от A.A2
состояния.
A2a
утверждать A.A2.A2b
.
A.A2.A2a
состояния
exit
действия (exitA2a()
) выполнитесь и завершитесь.
A.A2.A2a
состояния отмечен неактивный.
A.A2.A2b
состояния отмечен активный.
A.A2.A2b
состояния
entry
действия (entA2b()
) выполнитесь и завершитесь.
Обработка E_one
продолжается однажды on
широковещательная передача события E_two
был обработан. A
состояния.
A1
проверки на любые допустимые переходы в результате события E_one
. Допустимый переход существует от A.A1.A1a
состояния утверждать
A.A1.A1b
.
A.A1.A1a
состояния выполняет и завершает
exit
действия (exitA1a
).
A.A1.A1a
состояния отмечен неактивный.
A.A1.A1b
состояния отмечен активный.
A.A1.A1b
состояния
entry
действия (entA1b()
) выполнитесь и завершитесь.
Параллельный A.A2
состояния оценен затем.
A.A2
состояния
during
действия (durA2()
) выполнитесь и завершитесь. Нет никаких допустимых переходов в результате E_one
.
A.A2.A2b
состояния
during
действия (durA2b()
) выполнитесь и завершитесь.
A.A2.A2b
состояния теперь активно в результате обработки
on
широковещательная передача события E_two
.
График возвращается ко сну.
Эта последовательность завершает выполнение этого графика Stateflow®, сопоставленного с событием E_one
и on
широковещательная передача события к параллельному состоянию события E_two
. Итоговое действие графика является той параллелью, подутверждает A.A1.A1b
и A.A2.A2b
активны.
Совет
Избегайте использования неориентированных локальных широковещательных сообщений события. Неориентированные локальные широковещательные сообщения события могут вызвать нежелательное рекурсивное поведение в вашем графике. Вместо этого отправьте локальные события при помощи направленных широковещательных сообщений. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Configuration Parameters откройте Diagnostics> панель Stateflow и установите параметр Undirected event broadcasts на none
Предупреждение
, или error
. Настройкой по умолчанию является warning
.
Этот пример показывает поведение широковещательного действия перехода события, которое включает вложенную широковещательную передачу события в параллельное состояние. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Первоначально, график спит. Параллель подутверждает A.A1.A1a
и A.A2.A2a
активны. Событие E_one
происходит и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Нет никакого допустимого перехода.
A
состояния
during
действия (durA()
) выполнитесь и завершитесь.
Дочерние элементы А состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены слева направо и от начала до конца. A.A1
состояния оценен сначала.
A.A1
состоянияduring
действия (durA1()
) выполнитесь и завершитесь.
A.A1
состояния проверки на любые допустимые переходы в результате события
E_one
. Существует допустимый переход от A.A1.A1a
состояния утверждать
A.A1.A1b
.
A.A1.A1a
состояния выполняет и завершает
exit
действия (exitA1a
).
A.A1.A1a
состояния отмечен неактивный.
Действие перехода то широковещательное событие E_two
выполняется и завершается:
Широковещательная передача события E_two
теперь вытесняет переход от A1a
состояния утверждать
A1b
то событие E_one
триггеры.
Широковещательная передача события E_two
пробуждает график во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two
. Никакой допустимый переход не существует.
Состояние during
действия (durA()
) выполнитесь и завершитесь.
Дочерние элементы А состояния оценены начиная с A.A1
состояния.
A.A1
состоянияduring
действия (durA1()
) выполнитесь и завершитесь. A.A1
состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате
E_two
в A1
состояния.
A.A2
состояния оценен.
A
состояния.
A2
during
действия (durA2()
) выполнитесь и завершитесь. A
состояния.
A2
проверки на допустимые переходы. A
состояния.
A2
имеет допустимый переход в результате E_two
от A.A2.A2a
состояния утверждать
A.A2.A2b
.
A.A2.A2a
состояния
exit
действия (exitA2a()
) выполнитесь и завершитесь.
A.A2.A2a
состояния отмечен неактивный.
A.A2.A2b
состояния отмечен активный.
A.A2.A2b
состояния
entry
действия (entA2b()
) выполнитесь и завершитесь.
A.A1.A1b
состояния отмечен активный.
A.A1.A1b
состояния действия записи (
entA1b()
) выполнитесь и завершитесь.
Параллельный A.A2
состояния оценен затем.
A.A2
состояния во время действий (
durA2()
) выполнитесь и завершитесь. Нет никаких допустимых переходов в результате E_one
.
A.A2.A2b
состояния во время действий (
durA2b()
) выполнитесь и завершитесь.
A.A2.A2b
состояния теперь активно в результате обработки широковещательной передачи события
E_two
.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
и широковещательная передача события на действии перехода к параллельному состоянию события E_two
. Итоговое действие графика является той параллелью, подутверждает A.A1.A1b
и A.A2.A2b
активны.
Совет
Избегайте использования неориентированных локальных широковещательных сообщений события. Неориентированные локальные широковещательные сообщения события могут вызвать нежелательное рекурсивное поведение в вашем графике. Вместо этого отправьте локальные события при помощи направленных широковещательных сообщений. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Configuration Parameters откройте Diagnostics> панель Stateflow и установите параметр Undirected event broadcasts на none
Предупреждение
, или error
. Настройкой по умолчанию является warning
.
Этот пример показывает поведение широковещательной передачи события действия условия в параллели (AND) состояние. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Первоначально, график спит. Параллель подутверждает A.A1.A1a
и A.A2.A2a
активны. Событие E_one
происходит и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one
. Никакой допустимый переход не существует.
A
состояния
during
действия (durA()
) выполнитесь и завершитесь.
Дочерние элементы А состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены сверху донизу, и слева направо. A.A1
состояния оценен сначала.
A.A1
состояния
during
действия (durA1()
) выполнитесь и завершитесь.
A.A1
состояния проверки на любые допустимые переходы в результате события
E_one
. Допустимый переход от A.A1.A1a
состояния утверждать
A.A1.A1b
\exists. Также существует допустимое действие условия. Широковещательная передача события действия условия E_two
выполняется и завершается. A.A1.A1a
состояния все еще активно:
Широковещательная передача события E_two
пробуждает диаграмму Stateflow во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two
. Нет никакого допустимого перехода.
A
состояния
during
действия (durA()
) выполнитесь и завершитесь.
A
состояниядочерние элементы оценены начиная с
A.A1
состояния.
A
состояния.
A1
during
действия (durA1()
) выполнитесь и завершитесь. A.A1
состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате
E_two
в A1
состояния.
A1a
состояния
during
действия (durA1a()
Выполнение.
A.A2
состояния оценен.
A.A2
состояния
during
действия (durA2()
) выполнитесь и завершитесь. A.A2
состояния проверки на допустимые переходы.
A.A2
состояния имеет допустимый переход в результате
E_two
от A.A2.A2a
состояния утверждать
A.A2.A2b
.
A.A2.A2a
состояния
exit
действия (exitA2a()
) выполнитесь и завершитесь.
A.A2.A2a
состояния отмечен неактивный.
A.A2.A2b
состояния отмечен активный.
A.A2.A2b
состояния
entry
действия (entA2b()
) выполнитесь и завершитесь.
A.A1.A1a
состояния выполняет и завершает
exit
действия (exitA1a
).
A.A1.A1a
состояния отмечен неактивный.
A.A1.A1b
состояния отмечен активный.
A.A1.A1b
состояния
entry
действия (entA1b()
) выполнитесь и завершитесь.
Параллельный A.A2
состояния оценен затем.
A.A2
состояния
during
действия (durA2()
) выполнитесь и завершитесь. Нет никаких допустимых переходов в результате E_one
.
A.A2.A2b
состояния
during
действия (durA2b()
) выполнитесь и завершитесь.
A.A2.A2b
состояния теперь активно в результате обработки широковещательной передачи события действия условия
E_two
.
График возвращается ко сну.
Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one
и широковещательная передача события на действии условия к параллельному состоянию события E_two
. Итоговое действие графика является той параллелью, подутверждает A.A1.A1b
и A.A2.A2b
активны.
Совет
Избегайте использования неориентированных локальных широковещательных сообщений события. Неориентированные локальные широковещательные сообщения события могут вызвать нежелательное рекурсивное поведение в вашем графике. Вместо этого отправьте локальные события при помощи направленных широковещательных сообщений. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Configuration Parameters откройте Diagnostics> панель Stateflow и установите параметр Undirected event broadcasts на none
Предупреждение
, или error
. Настройкой по умолчанию является warning
.