Смоделируйте медиаплеер при помощи перечислимых данных в трех графиках Stateflow®.
Компонент модели | Описание |
---|---|
График UserRequest | Чтения и вводы данных пользователем хранилищ от пользовательского интерфейса |
График CdPlayerModeManager | Определяет, действует ли медиаплеер в радио AM, радио FM или режиме проигрывателя компакт-дисков |
График CdPlayerBehaviorModel | Описывает поведение компонента проигрывателя компакт-дисков |
Эта модель использует два перечислимых типа данных: RadioRequestMode
и CdRequestMode
. Путем группировки связанных значений в отдельные типы данных:
Вы улучшаете удобочитаемость значений данных в каждом графике.
Вы стараетесь не задавать длинный список констант и уменьшаете объем данных в своей модели.
Перечислимый тип данных | Перечисляемые значения |
---|---|
RadioRequestMode |
|
CdRequestMode |
|
Запустите симуляцию модели. Помощник Проигрывателя компакт-дисков появляется.
В модели блоки Отображения показывают настройки по умолчанию медиаплеера.
В разделе Radio Request нажмите CD. Отображение блокирует для перечислимых данных RR
и изменение CurrentRadioMode
от OFF
до CD
.
Нажмите Insert Disc. Блок Display для перечислимых данных CdStatus
изменяется от EMPTY
до DISCINSERT
к STOP
.
В разделе CD Request нажмите PLAY. Отображение блокирует для перечислимых данных CR
, MechCmd
и изменение CdStatus
от STOP
до PLAY
.
Чтобы видеть другие изменения в блоках Отображения, используйте Помощника Проигрывателя компакт-дисков, чтобы выбрать другие рабочие режимы для медиаплеера.
Этот график читает вводы данных пользователем от Помощника Проигрывателя компакт-дисков и хранит информацию как выходные данные.
Перечислимые данные RR
и CR
Оператор пространства имен ml
, чтобы получить доступ к MATLAB® функционирует sfcdplayerhelper
График вызывает функциональный sfcdplayerhelper
на пути MATLAB, читает ваше взаимодействие с пользовательским интерфейсом и хранит его как выходные данные.
Имя выходных данных | Тип данных | Выбор кнопки | Описание |
---|---|---|---|
RR | Перечислимый | Кнопки в разделе Radio Request | Субкомпонент медиаплеера, чтобы активироваться |
CR | Перечислимый | Кнопки в разделе CD Request | Рабочий режим проигрывателя компакт-дисков |
DiscInsert | Булевская переменная | Insert Disc | Установка для вставки CD |
DiscEject | Булевская переменная | Eject Disc | Установка для извлечения CD |
Этот график активирует соответствующий субкомпонент медиаплеера в зависимости от входных параметров, полученных от графика UserRequest.
Перечислимые данные RadioReq
, CdReq
, CurrentRadioMode
и MechCmd
Оператор hasChanged
, чтобы обнаружить изменения в значении RadioReq
Подграфики CdMode
, AMMode
и FMMode
В начале симуляции состояние ModeManager
становится активным. Если булевы данные, DiscEject
равняется 1 (или true
), переход к состоянию Eject
, происходят, сопровождаемые переходом назад к состоянию ModeManager
.
Когда ModeManager
активен, ранее активное подсостояние (Standby
или ON
), как зарегистрировано соединением истории становится активным. Последующие переходы между Standby
и подсостояниями ON
зависят от перечислимых данных RadioReq
:
Если RadioReq
является OFF
, подсостояние Standby
активируется.
Если RadioReq
не является OFF
, подсостояние ON
активируется.
В подсостоянии ON
три подграфика представляют рабочие режимы медиаплеера: Проигрыватель компакт-дисков, радио AM и радио FM. Каждый подграфик соответствует различному значению перечислимых данных RadioReq
. Внутренний переход в состоянии ON
постоянно сканирует для изменений в значении RadioReq
.
Значение перечислимых данных RadioReq | Активный подграфик | Цель подграфика |
---|---|---|
CD | CDMode | Устанавливает медиаплеер на режим проигрывателя компакт-дисков. Выходные параметры PLAY , REW , FF и команды STOP к графику CdPlayerBehaviorModel. |
AM | AMMode | Устанавливает медиаплеер на режим радио AM. Выводит команду STOP к графику CdPlayerBehaviorModel. |
FM | FMMode | Устанавливает медиаплеер на режим радио FM. Выводит команду STOP к графику CdPlayerBehaviorModel. |
Этот график активирует соответствующий рабочий режим для проигрывателя компакт-дисков в зависимости от входа, полученного от графика CdPlayerBehaviorModel.
Перечислимые данные CMD
и CdStatus
after
временный логический оператор, чтобы управлять синхронизацией переходов во время вставки диска и извлечения
В начале симуляции активируется состояние Empty
.
Если булевы данные, DiscInsert
равняется 1 (или true
), переход к состоянию Inserting
, происходят. После кратковременной задержки происходит переход к состоянию DiscPresent
.
Состояние DiscPresent
остается активным до данных, CMD
становится EJECT
. В той точке происходит переход к состоянию Ejecting
. После кратковременной задержки происходит переход к состоянию Empty
.
Каждый раз, когда изменение состояния происходит, перечислимые данные значение изменений CdStatus
, чтобы отразить состояние проигрывателя компакт-дисков.
Активное состояние | Значение перечислимых данных CdStatus | Поведение проигрывателя компакт-дисков |
---|---|---|
Empty | EMPTY | Проигрыватель компакт-дисков пуст. |
Inserting | DISCINSERT | CD вставляется в проигрыватель. |
Ejecting | EJECT | CD извлекается от игрока. |
DiscPresent.STOP | STOP | CD присутствует и остановился. |
DiscPresent.PLAY | PLAY | CD присутствует и проигрывание. |
DiscPresent.REW | REW | CD присутствует и перемотка. |
DiscPresent.FF | FF | CD является существующей и быстрой передачей. |