Можно широковещательно передать события непосредственно от одного состояния до другого, чтобы синхронизировать параллель (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) диагностика.