Состояния
Состояние (state) — это один из блоков конечного автомата (КА). Внутри блока задаются действия, описывающие поведение системы в этом состоянии в виде программного кода на Julia, графа переходов или вложенного КА и могут быть настроены с помощью групп операторов.
Блоки состояния подчиняются логике работы КА:
-
В модели КА в любой момент времени может быть активно одно или несколько состояний, если используется иерархия состояний. В этом случае активными являются состояния от наиболее вложенного до его самого внешнего родительского состояния (подробнее см. здесь);
-
Состояние активируется, если условие для перехода в него выполнено. Если состояние является единственным в модели или единственным среди вложенных состояний, то оно может активироваться без входящего перехода.
Состояния поддерживают иерархию (подробнее здесь). |
Синтаксис состояний
Правило | Ошибка при нарушении условия |
---|---|
У каждого состояния должно быть название. |
Ошибка цикла обработки результатов в router: ErrorException('имя_модели/Chart': state name ' ' is incorrect.) |
|
Ошибка цикла обработки результатов в router: ErrorException('имя_модели/Chart': state name 'пример некорректного имени' is incorrect.) |
Группы операторов поддерживают только операции на языке Julia. |
Ошибка инициализации модели: [EXEC] Ошибка инициализации модели id_модели id_симуляции: UndefVarError(:некорректный синтаксис) |
Код, написанный в состоянии без указания префиксов entry:
, during:
или exit:
, выполняется как при активации состояния, так и на каждом шаге модели, пока состояние остается активным и называется кодом с анонимной группой операторов. Такая группа операторов сочетает поведение префиксов entry:
и during:
. Например, блок состояния с циклом for
выглядит так:
В блоках состояний можно оставлять комментарии как и в любом коде на языке Julia:
|