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