Иерархия машины состояний
Используйте машину состояний (МС) с вложенными состояниями для создания иерархии в модели:
-
Родительское состояние — это состояние, которое содержит одно или несколько подсостояний, называемых дочерними состояниями. При активации родительского состояния происходит переход по умолчанию для дочерних состояний. Далее дочерние состояния работают по обычной логике до тех пор, пока родительское состояние не перестанет быть активным;
-
Дочернее состояние — это состояние, которое находится внутри родительского состояния.
Состояния можно вкладывать друг в друга, но они не должны перекрываться. При перекрытии выдается ошибка (восклицательный красный знак) о том, что состояния не могут быть наложены друг на друга:
Все вложенные состояния подчиняются следующим правилам:
-
На каждом уровне вложенности может быть переход по умолчанию, но это не обязательное условие. Если состояние единственное, то переход по умолчанию может отсутствовать. Это верно как для верхнего уровня, так и для вложенных состояний.
-
У состояний нет ограничений по глубине вложенности. При входе в состояние Engee автоматически определяет наличие вложенности:
-
Есть вложенные состояния — выполняется переход по умолчанию до дочерних состояний. Далее к дочерним состояниям применяется логика машины состояний до тех пор, пока активно родительское состояние.
-
Нет вложенных состояний — применяется логика машины состояний.
-