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. В этом случае:
Выйдите из действий для A1
выполнитесь и завершитесь.
A1
становится неактивным.
A1
становится активным.
Действия записи для A1
выполнитесь и завершитесь.
Смотрите Процесс Первое Событие с Внутренним Переходом к Коннектив-Джанкшен для получения дополнительной информации о семантике этого обозначения.
Этот пример показывает внутренний переход к соединению истории.
Power_on.High
состояния первоначально активно. Когда событие
Reset
происходит, внутренний переход к соединению истории допустим. Поскольку внутренний переход допустим, в настоящее время активное состояние, Power_on.High
, выходится. Когда внутренний переход к соединению истории обрабатывается, последнее активное состояние, Power_on.High
, становится активным (повторно введен). Если Power_on.Low
было активно при тех же обстоятельствах, Power_on.Low
вышелся бы и повторно введен в результате. Внутренний переход в этом примере эквивалентен рисованию внешнего перехода самоцикла на обоих Power_on.Low
и Power_on.High
.
Смотрите Пример Соединений Истории для другого примера с помощью соединения истории.
Смотрите Внутренний Переход к Соединению Истории для получения дополнительной информации о семантике этого обозначения.