Укажите начальный режим в диаграмме режимов
initial init_mode : predicate_condition end
initial начинает конструкцию начального режима в диаграмме режимов. Конструкция оканчивается end ключевое слово. Он содержит одну инструкцию со следующим синтаксисом:
init_mode : predicate_condition
где:
init_mode является режимом, активным в начале моделирования, если выражение в predicate_condition является правдой.
Если predicate_condition false, то первый режим, указанный в modes активен в начале моделирования.
predicate_condition должно быть параметрическим выражением, поскольку оно вычисляется во время компиляции. Использование переменной в предикате приводит к ошибке времени компиляции.
initial является необязательной конструкцией. Если диаграмма режима не содержит initial конструкция, затем первый режим, указанный в modes активен в начале моделирования.
Например, диаграмма режимов объявляет три режима: m1, m2, и m3:
modes
mode m1
...
end
mode m2
...
end
mode m3
...
end
end
По умолчанию режим m1 активен в начале моделирования. Если включить следующее initial конструкция:
initial
m2 : p1
end
затем, если p1 предикат true, моделирование начинается в режиме m2; в противном случае в режиме m1.
initial конструкция может иметь несколько начальных операторов режима, например:
initial
m2 : p1
m3 : p2
end
В этом случае:
Если p1 предикат true, моделирование начинается в режиме m2.
Если p2 предикат true, моделирование начинается в режиме m3.
Если оба предиката имеют значение true, моделирование запускается в режиме m2 (первый, указанный в initial раздел).
Если оба предиката имеют значение false, моделирование запускается в режиме m1 (первый, указанный в modes раздел).
Во время инициализации решатель сначала устанавливает начальный режим, а затем проверяет переходы. Если предикат перехода имеет значение true во время инициализации, система может запускаться в режиме, отличном от указанного в initial конструкция. Например, рассмотрим диаграмму режимов, которая объявляет три режима, m1, m2, и m3, и определяет следующие переходы и начальные режимы:
transitions
m3 -> m2 : p1
end
initial
m2 : p2
m3 : p3
end
Если предикаты p1 и p3 оба являются истинными во время инициализации, решатель устанавливает m3 в качестве начального режима, но система немедленно переходит из режима m3 к способу m2, и моделирование запускается в режиме m2.