local event является событием, которое происходит в графике Stateflow® и отображается только в графике. Этот тип события позволяет параллели (AND) состояния в том же графике синхронизироваться друг с другом, так, чтобы действия в триггерных действиях состояния в другом состоянии. Действие в одном графике не может широковещательно передать локальные события к состояниям в другом графике. Задавать локальное событие:
Добавьте событие к диаграмме Stateflow, как описано в Задают События в Графике.
Установите свойство Scope для события к Local
.
Локальные события поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Синхронизируют Компоненты модели Широковещательными Событиями.
directed event broadcast отправляет локальное событие непосредственно от одного состояния до другого при помощи оператора send
:
send(event_name,state_name)
event_name
локальное событие и state_name
состояние получения. Локальное событие широковещательно передается непосредственно к состоянию получения и любому из его подсостояний. Локальное событие должно отобразиться и к передающему состоянию и к состоянию получения. Состояние получения должно быть активным во время широковещательной передачи события.Например, этот график содержит две параллели (AND) состояния, A
и B
. Локальное событие E_one
принадлежит графику и отображается к обоим состояниям. В A
состояния, переход от
A1
подсостояния подутверждать
A2
использует направленную широковещательную передачу события формы send(E_one,B)
отправить локальное событие E_one
утверждать B
. В B
, событие инициировало переход от B1
подсостояния подутверждать
B2
. Поэтому активные подсостояния в A
и B
синхронизируются. Для получения дополнительной информации о семантике этого примера смотрите, что Направленная Широковещательная передача События Использовать Отправляет.
state_name
аргумент может включать весь путь к иерархии к состоянию. Например, если A
состояния содержит
A1
состояния, можно отправить событие
E
утверждать A1
с этой широковещательной передачей:
send(E,A.A1)
Совет
Не включайте имя графика в весь путь к иерархии к состоянию.
Чтобы широковещательно передать локальное событие, которое не отображается к передающему состоянию, используйте оператор send
с квалифицированным именем события:
send(state_name.event_name)
event_name
локальное событие, которое принадлежит получению, утверждают state_name
. Локальное событие широковещательно передается непосредственно к состоянию получения и любому из его подсостояний. Локальное событие отображается к состоянию получения, но не к передающему состоянию. Состояние получения должно быть активным во время широковещательной передачи события.Например, этот график содержит две параллели (AND) состояния, A
и B
. Локальное событие E_one
принадлежит B
состояния и отображается только к тому состоянию. В
A
состояния, переход от
A1
подсостояния подутверждать
A2
использует направленную широковещательную передачу события формы send(B.E_one)
отправить локальное событие E_one
утверждать B
. В B
, событие инициировало переход от B1
подсостояния подутверждать
B2
. Поэтому активные подсостояния в A
и B
синхронизируются. Для получения дополнительной информации о семантике этого примера смотрите, что Направленная Широковещательная передача События Использует Квалифицированное Имя События.
аргумент может включать весь путь к иерархии к состоянию получения. Не используйте имя графика на имя полного пути состояния. Например, предположите что state_name
A
состояния содержит
A1
состояния, и тот
A1
владеет локальным событием E
. Можно отправить событие E
утверждать A1
с этой широковещательной передачей:
send(A.A1.E)
undirected event broadcast отправляет локальное событие во все состояния, в которых он отображается при помощи имени события как действие условия:
event_name;
или путем вызова оператора send
не задавая состояние получения:
send(event_name)
event_name
локальное событие, которое отображается к передающему состоянию.Когда возможно, используйте направленные широковещательные сообщения события вместо неориентированных широковещательных сообщений события. Направленные широковещательные сообщения события предотвращают нежелательную рекурсию в процессе моделирования и повышают эффективность сгенерированного кода. Для получения дополнительной информации смотрите, Избегают Нежелательной Рекурсии в Графике.
В процессе моделирования диаграммы Stateflow могут обнаружить неориентированные локальные широковещательные сообщения события. Чтобы управлять уровнем диагностического действия, откройте диалоговое окно Configuration Parameters. В Diagnostics> панель Stateflow, для диагностики Undirected event broadcasts, можно выбрать none
Предупреждение
, или error
. Настройкой по умолчанию является warning
. Для получения дополнительной информации смотрите широковещательные сообщения события Undirected (Simulink).