exponenta event banner

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

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

В этом примере показано поведение широковещательных действий событий в параллельных состояниях. Диаграмма использует неявное упорядочение параллельных состояний (см. Неявное упорядочение параллельных состояний).

Первоначально чарт спит. Параллельные подстанции 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 выполняет и завершает on E_one действие и трансляция события E_two. during и on event_name действия обрабатываются в соответствии с порядком их появления в этикетке состояния:

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

    2. Государство А during действия (durA()) выполнить и завершить.

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

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

    5. Государство A1a during действия (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 активны.

Совет

Избегайте использования неориентированных трансляций локальных событий. Неориентированные трансляции локальных событий могут вызвать нежелательное рекурсивное поведение в диаграмме. Вместо этого отправляйте локальные события с помощью направленных широковещательных передач. Дополнительные сведения см. в разделе Широковещательная рассылка локальных событий для синхронизации параллельных состояний.

Можно задать уровень диагностики для обнаружения неориентированных трансляций локальных событий. В диалоговом окне Параметры конфигурации (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. Дети состояния А являются параллельными состояниями (И). Поскольку применяется неявное упорядочение, состояния вычисляются и выполняются слева направо и сверху вниз. Государство A.A1 сначала оценивают. Государство A.A1during действия (durA1()) выполнить и завершить.

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

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

  6. Государство A.A1.A1a помечен как неактивный.

Окно "

E_two событий" "Preempts" "E_one

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

    1. Трансляция события E_two теперь упреждает переход из состояния A1a указывать A1b это событие E_one триггеры.

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

    3. Государство А during действия (durA()) выполнить и завершить.

    4. Дети в состоянии А оцениваются, начиная с состояния A.A1. Государство A.A1during действия (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 активны.

Совет

Избегайте использования неориентированных трансляций локальных событий. Неориентированные трансляции локальных событий могут вызвать нежелательное рекурсивное поведение в диаграмме. Вместо этого отправляйте локальные события с помощью направленных широковещательных передач. Дополнительные сведения см. в разделе Широковещательная рассылка локальных событий для синхронизации параллельных состояний.

Можно задать уровень диагностики для обнаружения неориентированных трансляций локальных событий. В диалоговом окне Параметры конфигурации (Configuration Parameters) откройте панель Диагностика (Diagnostics) > Поток состояний (Stateflow) и задайте для параметра Undirected event broadcasts значение none, warning, или error. Значение по умолчанию: warning.

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

В этом примере показано поведение события действия условия, транслируемого в параллельном состоянии (И). Диаграмма использует неявное упорядочение параллельных состояний (см. Неявное упорядочение параллельных состояний).

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

  1. Корень диаграммы проверяет наличие допустимого перехода в результате E_one. Допустимый переход не существует.

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

  3. Дети состояния А являются параллельными состояниями (И). Поскольку применяется неявное упорядочение, состояния вычисляются и выполняются сверху вниз и слева направо. Государство 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 активны.

Совет

Избегайте использования неориентированных трансляций локальных событий. Неориентированные трансляции локальных событий могут вызвать нежелательное рекурсивное поведение в диаграмме. Вместо этого отправляйте локальные события с помощью направленных широковещательных передач. Дополнительные сведения см. в разделе Широковещательная рассылка локальных событий для синхронизации параллельных состояний.

Можно задать уровень диагностики для обнаружения неориентированных трансляций локальных событий. В диалоговом окне Параметры конфигурации (Configuration Parameters) откройте панель Диагностика (Diagnostics) > Поток состояний (Stateflow) и задайте для параметра Undirected event broadcasts значение none, warning, или error. Значение по умолчанию: warning.