Широковещательно передайте локальные События в параллельных состояниях

Направленная широковещательная передача события Используя отправляет

Этот пример показывает поведение направленной широковещательной передачи события с помощью синтаксиса send(event_name,state_name) на переходе. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).

Первоначально, график спит. Параллель подутверждает, что A.A1 и B.B1 активны, который подразумевает, что параллель (AND) сверхдержавы A и B также активна. Условие [data1==1] верно. Событие E_one принадлежит графику и видимо и к A и к B.

После пробуждения график проверяет на допустимые переходы на каждом уровне иерархии:

  1. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате события. Нет никакого допустимого перехода.

  2. A состояния проверяет на любые допустимые переходы в результате события. Поскольку условие, [data1==1] верен, существует допустимый переход от A.A1 состояния, чтобы утвердить A.A2.

  3. Действие send(E_one,B) выполняется:

    1. Широковещательная передача события E_one достигает B состояния. Поскольку B состояния активен, то состояние получает широковещательную передачу события и проверки, чтобы видеть, существует ли допустимый переход. Существует допустимый переход от B.B1 до B.B2.

    2. B.B1 состояния действия exit (exitB1()) выполняются и завершаются.

    3. B.B1 состояния становится неактивным.

    4. B.B2 состояния становится активным.

    5. B.B2 состояния действия entry (entB2()) выполняются и завершаются.

  4. A.A1 состояния действия exit (exitA1()) выполняются и завершаются.

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

  6. A.A2 состояния становится активным.

  7. A.A2 состояния действия entry (entA2()) выполняются и завершаются.

Эта последовательность завершает выполнение графика с направленной широковещательной передачей события к параллельному состоянию.

Направленная широковещательная передача события Используя квалифицированное имя события

Этот пример показывает поведение направленной широковещательной передачи события с помощью квалифицированного имени события на переходе. График использует неявное упорядоченное расположение параллельных состояний (см. Неявное Упорядоченное расположение Параллельных состояний).

Единственные различия от графика в Направленной Широковещательной передаче События Используя Отправляют:

  • Событие E_one принадлежит B состояния и видимо только к тому состоянию.

  • Действием send(E_one,B) является теперь send(B.E_one).

    Используя квалифицированное событие имя необходимо, потому что E_one не видим, чтобы утвердить A.

После пробуждения график проверяет на допустимые переходы на каждом уровне иерархии:

  1. Корневые проверки графика, чтобы видеть, существует ли допустимый переход в результате события. Нет никакого допустимого перехода.

  2. A состояния проверяет на любые допустимые переходы в результате события. Поскольку условие, [data1==1] верен, существует допустимый переход от A.A1 состояния, чтобы утвердить A.A2.

  3. Действие send(B.E_one) выполняется и завершается:

    1. Широковещательная передача события E_one достигает B состояния. Поскольку B состояния активен, то состояние получает широковещательную передачу события и проверки, чтобы видеть, существует ли допустимый переход. Существует допустимый переход от B.B1 до B.B2.

    2. B.B1 состояния действия exit (exitB1()) выполняются и завершаются.

    3. B.B1 состояния становится неактивным.

    4. B.B2 состояния становится активным.

    5. B.B2 состояния действия entry (entB2()) выполняются и завершаются.

  4. A.A1 состояния действия exit (exitA1()) выполняются и завершаются.

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

  6. A.A2 состояния становится активным.

  7. A.A2 состояния действия entry (entA2()) выполняются и завершаются.

Эта последовательность завершает выполнение графика с направленной широковещательной передачей события с помощью квалифицированного имени события к параллельному состоянию.

Смотрите также

Похожие темы