Implicit events является встроенными событиями, которые происходят, когда график выполняется:
Стройте диаграмму пробуждения
Запись в состояние
Выход из состояния
Значение присвоено внутреннему объекту данных
Эти события неявны, потому что вы не задаете или инициировали их явным образом. Неявные события являются дочерними элементами графика, в котором они происходят и видимы только в вышестоящей диаграмме.
Чтобы сослаться на неявные события, операторы действия используют этот синтаксис:
event(object)
где event является именем неявного события, и object является состоянием или данными, в которых событие имеет место.
Каждое ключевое слово ниже генерирует неявные события в обозначении языка действия для состояний и переходов.
Неявное событие | Значение |
|---|---|
Задает и неявно генерирует локальное событие, когда программное обеспечение Stateflow® пишет значение в переменную Переменная | |
Задает и неявно генерирует локальное событие, когда заданный | |
Задает и неявно генерирует локальное событие, когда из заданного | |
Задает и неявно генерирует локальное событие, когда график оцениваемого действия просыпается. | |
Эквивалентный |
Если больше чем один объект имеет то же имя, используйте точечный оператор, чтобы квалифицировать имя объекта с именем его родительского элемента. Этими примерами являются действительные ссылки к неявным событиям:
enter(switch_on) en(switch_on) change(engine.rpm)
tick (или wakeup) событие обращается к графику, содержащему оцениваемое действие. Событие не может обратиться к различному графику аргументом.
Этот пример иллюстрирует использование неявных событий tick.

Fan и Heater параллельны (AND) сверхдержавы. Первый раз, когда событие пробуждает диаграмму Stateflow, состояния Fan.Off и Heater.Off, становится активным.
Примите, что вы запускаете симуляцию дискретного времени. Каждый раз, когда график просыпается, широковещательная передача события tick, происходит. После четырех широковещательных сообщений происходит переход от Fan.Off до Fan.On. Точно так же после трех широковещательных сообщений, переход от Heater.Off до Heater.On происходит.
Для получения информации об операторе after смотрите Выполнение Диаграммы управления при помощи Временной Логики.
Предположим что:
Ваш график содержит параллельные состояния.
В нескольких параллельных состояниях то же неявное событие используется, чтобы охранять переход от одного подсостояния до другого.
Когда несколько переходов допустимы в том же временном шаге, переходы выполняются на основе порядка, в котором они были созданы в графике. Этот порядок не обязательно совпадает с порядком активации параллельных состояний, которые содержат переходы. Например, рассмотрите следующий график:

Когда переход от IV.HERE до IV.THERE происходит, условие, ex(IV.HERE) допустим для переходов от до B для параллели, утверждает I, II, и III. Эти три перехода от до B выполняются в порядке, в котором они были созданы: в состоянии I, затем II, и наконец III. Этот порядок не совпадает с порядком активации тех состояний.
Чтобы гарантировать, что допустимые переходы выполняются в том же порядке, что параллельные состояния становятся активными, используйте оператор in вместо неявных событий enter или exit:

С этой модификацией переходы от до B происходят в том же порядке как активация параллельных состояний. Для получения дополнительной информации об операторе in, смотрите Действие состояния Проверки при помощи в Операторе.