Неориентированные широковещательные События в параллельных состояниях

Широковещательно передайте События в актах государственной власти

Этот пример показывает поведение широковещательных действий события в параллельных состояниях. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).

Первоначально, график спит. Параллель подутверждает, что A.A1.A1a и A.A2.A2a активны. Событие E_one имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:

  1. Корневые проверки графика, чтобы видеть, существует ли допустимый переход на корневом уровне в результате E_one. Никакой допустимый переход не существует.

  2. A состояния действия during (durA()) выполняются и завершаются.

  3. Дочерние элементы A состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены слева направо и от начала до конца. A.A1 состояния оценен сначала. A.A1 состояния действия during (durA1()) выполняются и завершаются. A.A1 состояния выполняет и завершает действие E_one on и широковещательное событие E_two. during и on действия event_name обрабатываются на основе их порядка внешнего вида в метке состояния:

    1. Широковещательная передача события E_two пробуждает график во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two. Никакой допустимый переход не существует.

    2. Состояние during действия (durA()) выполняются и завершаются.

    3. Состояние проверки его дочерние элементы для допустимых переходов. Никакие допустимые переходы не существуют.

    4. Дочерние элементы А состояния оценены начиная с A.A1 состояния. A.A1 состояния действия during (durA1()) выполняются и завершаются. A.A1 состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате E_two в A1 состояния.

    5. Действия during A1a состояния (durA1a()) выполняются.

    6. A.A2 состояния оценен. A.A2 состояния действия during (durA2()) выполняются и завершаются. A.A2 состояния проверяет на допустимые переходы. A.A2 состояния имеет допустимый переход в результате E_two от A.A2 состояния.A2a, чтобы утвердить A.A2.A2b.

    7. A.A2.A2a состояния действия exit (exitA2a()) выполняются и завершаются.

    8. A.A2.A2a состояния отмечен неактивный.

    9. A.A2.A2b состояния отмечен активный.

    10. A.A2.A2b состояния действия entry (entA2b()) выполняются и завершаются.

  4. Обработка E_one продолжается, если широковещательная передача события on E_two была обработана. A состояния.A1 проверяет на любые допустимые переходы в результате события E_one. Допустимый переход существует от A.A1.A1a состояния, чтобы утвердить A.A1.A1b.

  5. A.A1.A1a состояния выполняет и завершает действия exit (exitA1a).

  6. A.A1.A1a состояния отмечен неактивный.

  7. A.A1.A1b состояния отмечен активный.

  8. A.A1.A1b состояния действия entry (entA1b()) выполняются и завершаются.

  9. Параллельный A.A2 состояния оценен затем. A.A2 состояния действия during (durA2()) выполняются и завершаются. Нет никаких допустимых переходов в результате E_one.

  10. A.A2.A2b состояния действия during (durA2b()) выполняются и завершаются.

    A.A2.A2b состояния теперь активен в результате обработки широковещательной передачи события on E_two.

  11. График возвращается ко сну.

Эта последовательность завершает выполнение этого графика 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.

Широковещательно передайте События в действиях перехода

Этот пример показывает поведение широковещательного действия перехода события, которое включает вложенную широковещательную передачу события в параллельное состояние. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).

Запустите события обработку E_one

Первоначально, график спит. Параллель подутверждает, что A.A1.A1a и A.A2.A2a активны. Событие E_one имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:

  1. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one. Нет никакого допустимого перехода.

  2. A состояния действия during (durA()) выполняются и завершаются.

  3. Дочерние элементы А состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены слева направо и от начала до конца. A.A1 состояния оценен сначала. A.A1 состояния действия during (durA1()) выполняются и завершаются.

  4. A.A1 состояния проверяет на любые допустимые переходы в результате события E_one. Существует допустимый переход от A.A1.A1a состояния, чтобы утвердить A.A1.A1b.

  5. A.A1.A1a состояния выполняет и завершает действия exit (exitA1a).

  6. A.A1.A1a состояния отмечен неактивный.

Событие E_two вытесняет E_one

  1. Действие перехода, которое широковещательное событие E_two выполняет и завершает:

    1. Широковещательная передача события E_two теперь вытесняет переход от A1a состояния, чтобы утвердить A1b то событие E_one триггеры.

    2. Широковещательная передача события E_two пробуждает график во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two. Никакой допустимый переход не существует.

    3. Состояние during действия (durA()) выполняются и завершаются.

    4. Дочерние элементы А состояния оценены начиная с A.A1 состояния. A.A1 состояния действия during (durA1()) выполняются и завершаются. A.A1 состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате E_two в A1 состояния.

    5. A.A2 состояния оценен. A состояния.A2 действия during (durA2()) выполняется и завершается. A состояния.A2 проверяет на допустимые переходы. A состояния.A2 имеет допустимый переход в результате E_two от A.A2.A2a состояния, чтобы утвердить A.A2.A2b.

    6. A.A2.A2a состояния действия exit (exitA2a()) выполняются и завершаются.

    7. A.A2.A2a состояния отмечен неактивный.

    8. A.A2.A2b состояния отмечен активный.

    9. A.A2.A2b состояния действия entry (entA2b()) выполняются и завершаются.

Событие резюме обработки E_one

  1. A.A1.A1b состояния отмечен активный.

  2. Действия записи A.A1.A1b состояния (entA1b()) выполняются и завершаются.

  3. Параллельный A.A2 состояния оценен затем. A.A2 состояния во время действий (durA2()) выполняется и завершается. Нет никаких допустимых переходов в результате E_one.

  4. A.A2.A2b состояния во время действий (durA2b()) выполняется и завершается.

    A.A2.A2b состояния теперь активен в результате обработки широковещательной передачи события E_two.

  5. График возвращается ко сну.

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

  1. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one. Никакой допустимый переход не существует.

  2. A состояния действия during (durA()) выполняются и завершаются.

  3. Дочерние элементы А состояния параллельны (AND) состояния. Поскольку неявное упорядоченное расположение применяется, состояния оценены и выполнены сверху донизу, и слева направо. A.A1 состояния оценен сначала. A.A1 состояния действия during (durA1()) выполняются и завершаются.

  4. A.A1 состояния проверяет на любые допустимые переходы в результате события E_one. Существует допустимый переход от A.A1.A1a состояния, чтобы утвердить A.A1.A1b. Также существует допустимое действие условия. Широковещательная передача события действия условия E_two выполняется и завершается. A.A1.A1a состояния все еще активен:

    1. Широковещательная передача события E_two пробуждает диаграмму Stateflow во второй раз. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_two. Нет никакого допустимого перехода.

    2. A состояния действия during (durA()) выполняются и завершаются.

    3. Дочерние элементы A состояния оценены начиная с A.A1 состояния. A состояния.A1 действия during (durA1()) выполняется и завершается. A.A1 состояния оценен для допустимых переходов. Нет никаких допустимых переходов в результате E_two в A1 состояния.

    4. A1a состояния действия during (durA1a()) выполняется.

    5. A.A2 состояния оценен. A.A2 состояния действия during (durA2()) выполняются и завершаются. A.A2 состояния проверяет на допустимые переходы. A.A2 состояния имеет допустимый переход в результате E_two от A.A2.A2a состояния, чтобы утвердить A.A2.A2b.

    6. A.A2.A2a состояния действия exit (exitA2a()) выполняются и завершаются.

    7. A.A2.A2a состояния отмечен неактивный.

    8. A.A2.A2b состояния отмечен активный.

    9. A.A2.A2b состояния действия entry (entA2b()) выполняются и завершаются.

  5. A.A1.A1a состояния выполняет и завершает действия exit (exitA1a).

  6. A.A1.A1a состояния отмечен неактивный.

  7. A.A1.A1b состояния отмечен активный.

  8. A.A1.A1b состояния действия entry (entA1b()) выполняются и завершаются.

  9. Параллельный A.A2 состояния оценен затем. A.A2 состояния действия during (durA2()) выполняются и завершаются. Нет никаких допустимых переходов в результате E_one.

  10. A.A2.A2b состояния действия during (durA2b()) выполняются и завершаются.

    A.A2.A2b состояния теперь активен в результате обработки широковещательной передачи события действия условия E_two.

  11. График возвращается ко сну.

Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one и широковещательной передачей события на действии условия к параллельному состоянию события E_two. Итоговое действие графика состоит в том, что параллель подутверждает, что A.A1.A1b и A.A2.A2b активны.

Совет

Избегайте использования неориентированных локальных широковещательных сообщений события, которые могут вызвать нежелательное рекурсивное поведение в вашем графике. Используйте оператор send для направленных локальных широковещательных сообщений события. Для получения дополнительной информации смотрите Широковещательную передачу Локальные События, чтобы Синхронизировать Параллельные состояния.

Можно установить диагностический уровень для обнаружения неориентированных локальных широковещательных сообщений события. В диалоговом окне Model Configuration Parameters перейдите к Diagnostics> панель Stateflow и установите диагностику Undirected event broadcasts на none, warning или error. Настройкой по умолчанию является warning.