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

События процесса с внутренним переходом в исключительном (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 isvalid.

  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 isvalid.

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