Добавьте структуру в свою модель один субкомпонент за один раз путем создания hierarchy вложенных состояний. Можно затем управлять несколькими уровнями сложности в графике Stateflow®. Для получения дополнительной информации смотрите Конечные автоматы Модели.
Чтобы создать иерархию состояний, поместите одно или несколько состояний в контурах другого состояния. Внутренние состояния являются дочерними состояниями (или подсостояниями) внешнего состояния. Внешнее состояние является родительским элементом (или сверхсостояние) внутренних состояний.
Содержимое родительского состояния ведет себя как меньший график. Когда родительское состояние становится активным, одно из его дочерних состояний также становится активным. Когда родительское состояние становится неактивным, все его дочерние состояния становятся неактивными.
Этот пример демонстрирует систему стерео, состоящую из радио AM, радио FM и проигрывателя компакт-дисков. В процессе моделирования вы управляете системой стерео путем нажатия кнопок в пользовательском интерфейсе Помощника Медиаплеера.
Стерео находится первоначально в дежурном режиме (OFF). Когда вы нажимаете одну из кнопок Radio Request, стерео включает соответствующий субкомпонент. Если вы выбираете проигрыватель компакт-дисков, можно нажать одну из кнопок CD Request, чтобы выбрать Play, Rewind, Fast-Forward или Stop. Можно вставить или извлечь диск в любой точке во время симуляции.
Первоначально, полноценное внедрение этой системы стерео кажется скорее сложным. Однако путем фокусировки на одном уровне активности за один раз, можно спроектировать полную разработку системы инкрементно. Например, эти условия необходимы для проигрывателя компакт-дисков, чтобы ввести режим воспроизведения Ускоренной перемотки вперед:
Вы включаете стерео.
Вы включаете проигрыватель компакт-дисков.
Вы проигрывающий диск.
Вы нажимаете кнопку FF в пользовательском интерфейсе.
Можно создать иерархическую модель, которая рассматривает каждое из этих условий по одному. Например, наиболее удаленный уровень может задать переходы между включением и выключением стерео. Средние уровни задают переход между различными субкомпонентами стерео, и между остановкой и режимами воспроизведения проигрывателя компакт-дисков. Самый нижний уровень задает ответ на кнопки CD Request, когда вы удовлетворяете всем другим условиям для того, чтобы проигрывать диск.
Реализовывать поведение системы стерео, sf_cdplayer
использует иерархию вложенных состояний, перечисленных Model Explorer при менеджере по Режиму Медиаплеера график. Чтобы открыть Model Explorer, во вкладке Modeling, выбирают Model Explorer.
Эта таблица приводит роль каждого состояния в иерархии.
Уровень иерархии | Состояние | Описание |
---|---|---|
Верхний уровень (Менеджер по Режиму медиаплеера график) | ModeManager | Нормальный рабочий режим для системы стерео |
Eject | Режим извлечения диска (прерывает все другие функции стерео), | |
Системное действие стерео (дочерние состояния | Standby | Система стерео находится в дежурном режиме (OFF) |
ON | Система стерео активна (ON) | |
Субкомпоненты стерео (дочерние состояния | AMMode | Субкомпонент радио AM активен |
FMMode | Субкомпонент радио FM активен | |
CDMode | Субкомпонент проигрывателя компакт-дисков активен | |
Действие проигрывателя компакт-дисков (дочерние состояния | Stop | Проигрыватель компакт-дисков останавливается |
Play | Проигрыватель компакт-дисков проигрывает диск | |
Режимы воспроизведения диска (дочерние состояния | Normal | Нормальный режим воспроизведения |
Rew | Противоположный режим воспроизведения | |
FastForward | Режим воспроизведения ускоренной перемотки вперед |
Этот рисунок показывает полный макет состояний в графике.
Можно упростить полный внешний вид графика с комплексной иерархией путем сокрытия низкоуровневых деталей в субдиаграммах, которые появляются как непрозрачные поля. Использование субдиаграмм не изменяет поведение графика. Например, в sf_cdplayer
, субкомпоненты стерео AMMode
, FMMode
, и CDMode
реализованы как субдиаграммы. Когда вы открываете менеджера по Режиму Медиаплеера график, вы видите только три уровня иерархии состояния. Чтобы видеть детали в одной из субдиаграмм, дважды кликните субдиаграмму.
Пример sf_cdplayer
содержит две других диаграммы Stateflow:
Пользовательский Запрос управляет интерфейсом с пользовательским интерфейсом и передает входные параметры менеджеру по Режиму Медиаплеера и графикам Модели Поведения Проигрывателя компакт-дисков.
Модель Поведения Проигрывателя компакт-дисков получает выход от Пользовательского менеджера по Режиму Запроса и Медиаплеера графики и подражает механическому поведению проигрывателя компакт-дисков.
В процессе моделирования можно заняться расследованиями, как каждый график отвечает на взаимодействия с Помощником Медиаплеера. Чтобы переключиться быстро между графиками, используйте вкладки наверху редактора Stateflow.