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

Обработка событий с внутренним переходом в эксклюзивном (ИЛИ) состоянии

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

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

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

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

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

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

  2. Конечные A выход действий (exitA()) выполнить и завершить.

  3. Конечные A помечен как неактивный.

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

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

  6. Конечные B действия входа (entB()) выполнить и завершить.

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

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

Обработка третьего события в эксклюзивном (ИЛИ) состоянии

Используя предыдущий пример, этот пример показывает, что происходит, когда третье событие, 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] является true. Событийные 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] является true.

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

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

Изначально график спит. Конечные A2 активно. Условие [C_two] является true. Событийные 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] является true. Для состояния с действительным внутренним переходом активный подсостояние может быть немедленно выведен и возвращен.

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

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

Изначально график спит. Конечные 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 активно. Для состояния с действительным внутренним переходом активный подсостояние может быть немедленно выведен и возвращен.