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

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

Можно широковещательно передать события непосредственно от одного состояния до другого, чтобы синхронизировать параллель (AND) состояния в том же графике. Локальные события поддерживаются только в графиках Stateflow® в моделях Simulink®. Следующие правила применяются:

  • Состояние получения должно быть активным во время широковещательной передачи события.

  • Действие в одном графике не может широковещательно передать события к состояниям в другом графике.

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

  • Предотвращает нежелательную рекурсию в процессе моделирования.

  • Повышает эффективность сгенерированного кода.

Для получения информации о предотвращении нежелательной рекурсии смотрите, Избегают Нежелательной Рекурсии в Графике.

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

Формат направленного локального события широковещательно передается с send :

send(event_name,state_name)

где event_name широковещательно передается к state_name и любые потомки того состояния в иерархии. Событие, которое вы отправляете, должно отобразиться и к передающему состоянию и к состоянию получения (state_name).

state_name аргумент может включать весь путь к иерархии к состоянию. Например, если A состояния содержит A1 состояния, отправьте событие E утверждать A1 со следующей широковещательной передачей:

send(E,A.A1)

Совет

Не включайте имя графика в весь путь к иерархии к состоянию.

Следующий пример направленного локального события широковещательно передал, использует отправление (event_name, state_name) синтаксис.

В этом примере, событии E_one принадлежит графику и отображается к обоим A и B. Смотрите, что Направленная Широковещательная передача События Использовать Отправляет для получения дополнительной информации о семантике этого обозначения.

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

Формат направленной локальной широковещательной передачи события с помощью квалифицированных имен события:

send(state_name.event_name)

где event_name широковещательно передается к его состоянию владения (state_name) и любые потомки того состояния в иерархии. Событие, которое вы отправляете, отображается только к состоянию получения (state_name).

state_name аргумент может также включать весь путь к иерархии к состоянию получения. Не используйте имя графика на имя полного пути состояния.

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

В этом примере, событии E_one принадлежит B состояния и отображается только к тому состоянию. Смотрите, что Направленная Широковещательная передача События Использует Квалифицированное Имя События для получения дополнительной информации о семантике этого обозначения.

Диагностика для обнаружения неориентированных локальных широковещательных сообщений события

Если у вас есть неориентированные локальные широковещательные сообщения события в состояниях активности или действиях условия в вашем графике, предупреждение появляется по умолчанию в процессе моделирования. Примеры состояний активности с неориентированными локальными широковещательными сообщениями события включают:

  • entry: send(E1), где E1 локальное событие в графике

  • exit: E2, где E2 локальное событие в графике

Можно управлять уровнем диагностического действия для неориентированных локальных широковещательных сообщений события в Diagnostics> панель Stateflow диалогового окна Model Configuration Parameters. Установите диагностику Undirected event broadcasts на noneПредупреждение, или error. Для получения дополнительной информации см. документацию для широковещательных сообщений события Undirected (Simulink) диагностика.

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

Похожие темы