Набор путей к потоку по умолчанию выполняется (см., Выполняют набор Блок-схем). Если это действие не вызывает запись состояния, и график имеет параллельное разложение, то каждое параллельное состояние становится активным (см., Вводят состояние).
Если выполнение путей к потоку по умолчанию не вызывает запись состояния, ошибка несоответствия состояния происходит.
Если график не имеет никаких состояний, каждое выполнение эквивалентно инициализации графика. В противном случае активные дочерние элементы выполняются. Параллельные состояния выполняются в том же порядке, что они становятся активными.
Если родительский элемент состояния не активен, выполните шаги 1 - 4 для родительского элемента.
Если это состояние является параллельным состоянием, проверяйте, что все одноуровневые элементы с более высоким (то есть, ранее) порядок записи активны. В противном случае выполните шаги 1 - 5 для этих состояний сначала.
Параллель (AND), который состояния упорядочены для записи на основе того, используете ли вы явное упорядоченное расположение (значение по умолчанию) или неявное упорядоченное расположение. Для получения дополнительной информации смотрите Явное Упорядоченное расположение Параллельных состояний и Неявное Упорядоченное расположение Параллельных состояний.
Отметьте активное состояние.
Выполните любые действия входа.
Введите дочерние элементы в случае необходимости:
Если состояние содержит соединение истории и был активный дочерний элемент этого состояния в какой-то момент после новой инициализации графика, выполните действия входа для того дочернего элемента. В противном случае выполните пути к потоку по умолчанию для состояния.
Если это состояние имеет дочерние элементы, которые являются параллельными состояниями (параллельное разложение), выполняют шаги 1 - 5 записи для каждого состояния согласно его порядку записи.
Если это состояние имеет только одно дочернее подсостояние, подсостояние становится активным, когда родительский элемент становится активным, независимо от того, присутствует ли переход по умолчанию. Ввод родительского состояния автоматически делает подсостояние активным. Присутствие любого внутреннего перехода не оказывает влияния на определение активного подсостояния.
Если это состояние является параллельным состоянием, выполните все шаги записи для одноуровневого элемента, утверждают затем в порядке записи, если вы существуете.
Если родительский элемент пути к переходу различный как родительский элемент текущего состояния, выполните шаги 6 и 7 записи для непосредственного родителя этого состояния.
Набор внешних блок-схем выполняется (см., Выполняют набор Блок-схем). Если это действие вызывает изменение состояния, остановки выполнения. (Обратите внимание на то, что этот шаг никогда не происходит для параллельных состояний.)
Во время действий и допустимых действий на событии выполняются.
Набор внутренних блок-схем выполняется. Если это действие не вызывает изменение состояния, активные дочерние элементы выполняются, запускающийся на шаге 1. Параллельные состояния выполняются в том же порядке, что они становятся активными.
Если это - параллельное состояние, убедитесь, что все одноуровневые состояния, которые стали активными после этого состояния, уже стали неактивными. В противном случае выполните все шаги выхода на тех одноуровневых состояниях.
Если существуют какие-либо активные дочерние элементы, выполняют выходные шаги на этих состояниях в обратном порядке, что они стали активными.
Выполните любые выходные действия.
Отметьте состояние как неактивное.
Блок-схемы выполняются путем запуска на шаге 1 ниже с набором стартовых переходов. Стартовые переходы для внутренних блок-схем являются всеми сегментами перехода, которые происходят на соответствующем состоянии и находятся полностью в том состоянии. Стартовые переходы для внешних блок-схем являются всеми сегментами перехода, которые происходят на соответствующем состоянии, но находятся, по крайней мере, частично вне того состояния. Стартовые переходы для блок-схем по умолчанию являются всеми сегментами перехода по умолчанию, которые имеют начальные точки с тем же родительским элементом:
Упорядоченное расположение набора сегментов перехода происходит.
В то время как там остаются, сегменты, чтобы протестировать, тестируя сегмент на валидность происходят. Если сегмент недопустим, тестирование следующего сегмента происходит. Если сегмент допустим, выполнение зависит от места назначения:
Состояния
Тестирование остановок сегментов перехода и пути к переходу формируется, отходя назад и включая сегмент перехода от каждого предыдущего соединения до соответствующего стартового перехода.
Состояния, которые являются мгновенными дочерними элементами родительского элемента выхода пути к переходу (см. Выход Активное состояние).
Действие перехода от итогового пути к переходу выполняется.
Целевое состояние становится активным (см., Вводят состояние).
Соединения без исходящих сегментов перехода
Тестирование остановок без любых выходов состояния или записей.
Перекрестки с исходящими сегментами перехода
Шаг 1 повторяется с набором исходящих сегментов от соединения.
После тестирования всех исходящих сегментов перехода на перекрестке отследите в обратном порядке входящий сегмент перехода, который принес вам к соединению, и продолжите на шаге 2, начиная со следующего сегмента перехода после сегмента отслеживания в обратном порядке. Набор выполнения концов блок-схем, когда тестирование всех стартовых переходов завершено.
Выведите инициируют выполнение события фронтом сигнала, эквивалентно изменению значения значения выходных данных. Все другие события имеют следующее выполнение:
Если приемник события активен, то это выполняется (см., Выполняют Активный График и Выполняют Активное состояние). (Приемник события является родительским элементом события, если прямая широковещательная передача события не происходит с помощью send()
функция.
Если приемник события не активен, ничего не происходит.
После широковещательной передачи события вещательная компания выполняет, рано возвращают логику на основе типа оператора действия, который вызвал событие.
Тип действия | Рано возвратите логику |
---|---|
Запись состояния | Если состояние более не активно в конце широковещательной передачи события, любые остающиеся шаги во вводе состояния не происходят. |
Выход состояния | Если состояние более не активно в конце широковещательной передачи события, любые остающиеся выходные действия и шаги в переходе состояния не происходят. |
Состояние во время | Если состояние более не активно в конце широковещательной передачи события, любые остающиеся шаги в выполнении активного состояния не происходят. |
Условие | Если состояние источника внутренней или внешней блок-схемы или родительское состояние блок-схемы по умолчанию более не активны в конце широковещательной передачи события, остающиеся шаги в выполнении набора блок-схем не происходят. |
Переход | Если родительский элемент пути к переходу не активен или если тот родительский элемент имеет активный дочерний элемент, остающиеся действия перехода и запись состояния не происходят. |