Этот пример показывает поведение широковещательных действий события в параллельных состояниях. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Первоначально, график спит. Параллель подутверждает, что A.A1.A1a
и A.A2.A2a
активны. Событие E_one
имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход на корневом уровне в результате E_one
. Никакой допустимый переход не существует.
A
состояния
действия during
(durA()
) выполняются и завершаются.
Дочерние элементы A
состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены слева направо и от начала до конца. A.A1
состояния оценен сначала. A.A1
состояния
действия during
(durA1()
) выполняются и завершаются. A.A1
состояния выполняет и завершает
действие E_one
on
и широковещательное событие E_two
. during
и on
действия event_name
обрабатываются на основе их порядка внешнего вида в метке состояния:
Широковещательная передача события E_two
пробуждает график во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two
. Никакой допустимый переход не существует.
Состояние during
действия (durA()
) выполняются и завершаются.
Состояние проверки его дочерние элементы для допустимых переходов. Никакие допустимые переходы не существуют.
Дочерние элементы А состояния оценены начиная с A.A1
состояния. A.A1
состояния
действия during
(durA1()
) выполняются и завершаются. A.A1
состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате E_two
в A1
состояния.
Действия during
A1a
состояния (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
активны.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте оператор send
для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none
, warning
или 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
активны.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте оператор send
для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none
, warning
или 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
. Также существует допустимое действие условия. Широковещательная передача события действия условия 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
активны.
Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте оператор send
для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.
Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none
, warning
или error
. Настройкой по умолчанию является warning
.