Можно широковещательно передать события непосредственно от одного состояния до другого, чтобы синхронизировать параллель (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)
Не включайте имя графика в весь путь к иерархии к состоянию.
Следующий пример направленного локального события широковещательно передал, использует синтаксис
.send(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
, warning
или error
. Для получения дополнительной информации см. документацию для широковещательных сообщений события Undirected (Simulink) диагностика.