События процесса в состояниях, содержащих внутренние переходы

События процесса с внутренним переходом в исключительном (OR) состояние

Этот пример показывает то, что происходит при обработке трех событий с помощью внутреннего перехода в исключительном (OR) состояние.

Обработайте одно событие в исключительном (OR) состояние

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

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

  1. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате E_one. Обнаруживается потенциально допустимый переход от A состояния, чтобы утвердить B. Однако переход не допустим, потому что [C_one] является ложным.

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

  3. A состояния проверяет свои дочерние элементы на допустимый переход и обнаруживает допустимый внутренний переход.

  4. A состояния остается активным. Внутреннее действие перехода A_two выполняется и завершается. Поскольку это - внутренний переход, выход A состояния и действия записи не выполняются.

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

Эта последовательность завершает выполнение этого графика Stateflow®, сопоставленного с событием E_one.

Обработайте второе событие в исключительном (OR) состояние

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

Первоначально, график спит. A состояния все еще активен. Условие [C_one] верно. Событие E_one имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:

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

    Переход от A состояния, чтобы утвердить B теперь допустим, потому что [C_one] верен.

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

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

  4. Действие перехода A_one выполняется и завершается.

  5. B состояния отмечен активный.

  6. Действия записи B состояния (entB()) выполняются и завершаются.

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

Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one.

Обработайте третье событие в исключительном (OR) состояние

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

Первоначально, график спит. B состояния теперь активен. Условие [C_two] является ложным. Событие E_two имеет место и пробуждает график, который обрабатывает событие от корня вниз через иерархию:

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

    Обнаруживается потенциально допустимый переход от B состояния, чтобы утвердить A. Переход не допустим, потому что [C_two] является ложным. Однако активный B состояния имеет допустимый переход самоцикла.

  2. Выходные действия B состояния (exitB()) выполняются и завершаются.

  3. B состояния отмечен неактивный.

  4. Действие перехода самоцикла, A_four, выполняется и завершается.

  5. B состояния отмечен активный.

  6. Действия записи B состояния (entB()) выполняются и завершаются.

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

Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_two. Этот пример показывает различие в поведении между переходами самоцикла и внутренним.

События процесса с внутренним переходом к соединительному соединению

Этот пример показывает поведение обработки повторных событий с помощью внутреннего перехода к соединительному соединению.

Обработайте первое событие с внутренним переходом к соединительному соединению

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

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

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

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

  3. A состояния проверяется для допустимых переходов и обнаруживает, что существует допустимый внутренний переход к соединительному соединению.

    Условия оценены, чтобы определить, допустим ли один из переходов. Поскольку неявное упорядоченное расположение применяется, сегменты, маркированные условием, оценены перед немаркированным сегментом. Оценка начинает с 12-часовой позиции по соединению и прогрессирует в по часовой стрелке способ. Поскольку [C_two] верен, внутренний переход к соединению и затем утверждать, что A.A2 допустим.

  4. A состояния.A1 выходные действия (exitA1()) выполняется и завершается.

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

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

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

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

Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one, когда A1 состояния активен и условие, [C_two] верен.

Обработайте второе событие с внутренним переходом к соединительному соединению

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

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

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

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

  3. A состояния проверяется для допустимых переходов и обнаруживает допустимый внутренний переход к соединительному соединению.

    Условия оценены, чтобы определить, допустим ли один из переходов. Поскольку неявное упорядоченное расположение применяется, сегменты, маркированные условием, оценены перед немаркированным сегментом. Оценка начинает с 12-часовой позиции по соединению и прогрессирует в по часовой стрелке способ. Поскольку [C_two] верен, внутренний переход к соединению и затем утверждать, что A.A2 допустим.

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

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

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

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

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

Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one, когда A2 состояния активен и условие, [C_two] верен. Для состояния с допустимым внутренним переходом из активного подсостояния можно выйти и сразу повторно ввести.

Внутренний переход к соединению истории

Этот пример показывает поведение внутреннего перехода к соединению истории.

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

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

  2. A состояния во время действий выполняется и завершается.

  3. A состояния проверяется для допустимых переходов и обнаруживает, что существует допустимый внутренний переход к соединению истории. На основе информации об истории последнее активное состояние, A.A1, является целевым состоянием.

  4. Выходные действия A.A1 состояния выполняются и завершаются.

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

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

  7. Действия записи A.A1 состояния выполняются и завершаются.

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

Эта последовательность завершает выполнение этой диаграммы Stateflow, сопоставленной с событием E_one, когда существует внутренний переход к соединению истории, и A.A1 состояния активен. Для состояния с допустимым внутренним переходом из активного подсостояния можно выйти и сразу повторно ввести.