Внутренние переходы

inner transition является переходом, который не выходит из исходного состояния. Внутренние переходы мощны, когда задано для сверхсостояний с исключительным (OR) разложение. Использование внутренних переходов может значительно упростить Stateflow® стройте диаграмму, как показано следующими примерами:

Перед использованием внутреннего перехода

Этот график является примером того, как можно упростить логику с помощью внутреннего перехода.

Любое событие имеет место и пробуждает диаграмму Stateflow. Переход по умолчанию к соединительному соединению допустим. Место назначения перехода определяется [c1 > 0] и [c2 > 0]. Если [c1 > 0] верно, переход к A1 верно. Если [c2 > 0] верно, переход к A2 isvalid. Если никакой [c1 > 0] ни [c2 > 0] верно, переход к A3 isvalid. Переходы среди A1, A2, и A3 определяются E, [c1 > 0], и [c2 > 0].

После Используя внутренний переход к соединительному соединению

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

Событие имеет место и пробуждает график. Переход по умолчанию к соединительному соединению допустим. Место назначения переходов определяется [c1 > 0] и [c2 > 0].

Можно упростить график при помощи внутреннего перехода вместо переходов среди всех состояний в исходном примере. Если A состояния уже активно, внутренний переход используется, чтобы переоценить который из подсостояний A состояния должно быть активным. Когда событие E происходит, внутренний переход потенциально допустим. Если [c1 > 0] верно, переход к A1 isvalid. Если [c2 > 0] верно, переход к A2 isvalid. Если никакой [c1 > 0] ни [c2 > 0] верно, переход к A3 isvalid. Этот проект графика более прост, чем предыдущий.

Примечание

Когда вы используете внутренний переход к соединительному соединению, активное подсостояние может выйти и повторно вступить, когда условие перехода для того подсостояния допустимо. Например, если A1 подсостояния активно и [c1 > 0] верно, переход к A1 isvalid. В этом случае:

  1. Выйдите из действий для A1 выполнитесь и завершитесь.

  2. A1 становится неактивным.

  3. A1 становится активным.

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

Смотрите Процесс Первое Событие с Внутренним Переходом к Коннектив-Джанкшен для получения дополнительной информации о семантике этого обозначения.

Используя внутренний переход к соединению истории

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

Power_on.High состояния первоначально активно. Когда событие Reset происходит, внутренний переход к соединению истории допустим. Поскольку внутренний переход допустим, в настоящее время активное состояние, Power_on.High, выходится. Когда внутренний переход к соединению истории обрабатывается, последнее активное состояние, Power_on.High, становится активным (повторно введен). Если Power_on.Low было активно при тех же обстоятельствах, Power_on.Low вышелся бы и повторно введен в результате. Внутренний переход в этом примере эквивалентен рисованию внешнего перехода самоцикла на обоих Power_on.Low и Power_on.High.

Смотрите Пример Соединений Истории для другого примера с помощью соединения истории.

Смотрите Внутренний Переход к Соединению Истории для получения дополнительной информации о семантике этого обозначения.