Этот пример показывает поведение направленной широковещательной передачи события с помощью отправления (
синтаксис на переходе. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).event_name
, state_name
)
Первоначально, график спит. Параллель подутверждает A.A1
и B.B1
активны, который подразумевает что параллель (AND) сверхсостояния A
и B
также активны. Условие [data1==1]
верно. Событие E_one
принадлежит графику и отображается к обоим A
и B
.
После пробуждения график проверяет на допустимые переходы на каждом уровне иерархии:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате события. Нет никакого допустимого перехода.
A
состояния проверки на любые допустимые переходы в результате события. Поскольку условие
[data1==1]
верно, существует допустимый переход от A.A1
состояния утверждать
A.A2
.
Действие send(E_one,B)
выполняется:
Широковещательная передача события E_one
достигает B
состояния. Поскольку
B
состояния активно, то состояние получает широковещательную передачу события и проверки, чтобы видеть, существует ли допустимый переход. Существует допустимый переход от
B.B1
к B.B2
.
B.B1
состояния
exit
действия (exitB1()
) выполнитесь и завершитесь.
B.B1
состояния становится неактивным.
B.B2
состояния становится активным.
B.B2
состояния
entry
действия (entB2()
) выполнитесь и завершитесь.
A.A1
состояния
exit
действия (exitA1()
) выполнитесь и завершитесь.
A.A1
состояния становится неактивным.
A.A2
состояния становится активным.
A.A2
состояния
entry
действия (entA2()
) выполнитесь и завершитесь.
Эта последовательность завершает выполнение графика с направленной широковещательной передачей события к параллельному состоянию.
Этот пример показывает поведение направленной широковещательной передачи события с помощью квалифицированного имени события на переходе. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).
Единственные различия от графика в Направленной Широковещательной передаче События Используя Отправляют:
Событие E_one
принадлежит B
состояния и отображается только к тому состоянию.
Действие send(E_one,B)
теперь send(B.E_one)
.
Используя квалифицированное событие имя необходимо потому что E_one
не отображается, чтобы утвердить A
.
После пробуждения график проверяет на допустимые переходы на каждом уровне иерархии:
Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате события. Нет никакого допустимого перехода.
A
состояния проверки на любые допустимые переходы в результате события. Поскольку условие
[data1==1]
верно, существует допустимый переход от A.A1
состояния утверждать
A.A2
.
Действие send(B.E_one)
выполняется и завершается:
Широковещательная передача события E_one
достигает B
состояния. Поскольку
B
состояния активно, то состояние получает широковещательную передачу события и проверки, чтобы видеть, существует ли допустимый переход. Существует допустимый переход от
B.B1
к B.B2
.
B.B1
состояния
exit
действия (exitB1()
) выполнитесь и завершитесь.
B.B1
состояния становится неактивным.
B.B2
состояния становится активным.
B.B2
состояния
entry
действия (entB2()
) выполнитесь и завершитесь.
A.A1
состояния
exit
действия (exitA1()
) выполнитесь и завершитесь.
A.A1
состояния становится неактивным.
A.A2
состояния становится активным.
A.A2
состояния
entry
действия (entA2()
) выполнитесь и завершитесь.
Эта последовательность завершает выполнение графика с направленной широковещательной передачей события с помощью квалифицированного имени события к параллельному состоянию.