Образцовый медиаплеер при помощи перечислимых данных

Смоделируйте медиаплеер при помощи перечислимых данных в трех графиках Stateflow®.

Компонент моделиОписание
График UserRequestЧтения и вводы данных пользователем хранилищ от пользовательского интерфейса
График CdPlayerModeManagerОпределяет, действует ли медиаплеер в радио AM, радио FM или режиме проигрывателя компакт-дисков
График CdPlayerBehaviorModelОписывает поведение компонента проигрывателя компакт-дисков

Эта модель использует два перечислимых типа данных: RadioRequestMode и CdRequestMode. Путем группировки связанных значений в отдельные типы данных:

  • Вы улучшаете удобочитаемость значений данных в каждом графике.

  • Вы стараетесь не задавать длинный список констант и уменьшаете объем данных в своей модели.

Перечислимый тип данныхПеречисляемые значения
RadioRequestMode
  • OFF(0)

  • CD(1)

  • FM(2)

  • AM(3)

CdRequestMode
  • EMPTY(-2)

  • DISCINSERT(-1)

  • STOP(0)

  • PLAY(1)

  • REW(3)

  • FF(4)

  • EJECT(5)

Запустите модель медиаплеера

  1. Запустите симуляцию модели. Помощник Проигрывателя компакт-дисков появляется.

    В модели блоки Отображения показывают настройки по умолчанию медиаплеера.

  2. В разделе Radio Request нажмите CD. Отображение блокирует для перечислимых данных RR и изменение CurrentRadioMode от OFF до CD.

  3. Нажмите Insert Disc. Блок Display для перечислимых данных CdStatus изменяется от EMPTY до DISCINSERT к STOP.

  4. В разделе CD Request нажмите PLAY. Отображение блокирует для перечислимых данных CR, MechCmd и изменение CdStatus от STOP до PLAY.

  5. Чтобы видеть другие изменения в блоках Отображения, используйте Помощника Проигрывателя компакт-дисков, чтобы выбрать другие рабочие режимы для медиаплеера.

График UserRequest

Этот график читает вводы данных пользователем от Помощника Проигрывателя компакт-дисков и хранит информацию как выходные данные.

Ключевые возможности графика

  • Перечислимые данные RR и CR

  • Оператор пространства имен ml, чтобы получить доступ к MATLAB® функционирует sfcdplayerhelper

Стройте диаграмму поведения

График вызывает функциональный sfcdplayerhelper на пути MATLAB, читает ваше взаимодействие с пользовательским интерфейсом и хранит его как выходные данные.

Имя выходных данныхТип данныхВыбор кнопкиОписание
RRПеречислимыйКнопки в разделе Radio RequestСубкомпонент медиаплеера, чтобы активироваться
CRПеречислимыйКнопки в разделе CD RequestРабочий режим проигрывателя компакт-дисков
DiscInsertБулевская переменнаяInsert DiscУстановка для вставки CD
DiscEjectБулевская переменнаяEject DiscУстановка для извлечения CD

График CdPlayerModeManager

Этот график активирует соответствующий субкомпонент медиаплеера в зависимости от входных параметров, полученных от графика 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Активный подграфикЦель подграфика
CDCDModeУстанавливает медиаплеер на режим проигрывателя компакт-дисков. Выходные параметры PLAY, REW, FF и команды STOP к графику CdPlayerBehaviorModel.
AMAMModeУстанавливает медиаплеер на режим радио AM. Выводит команду STOP к графику CdPlayerBehaviorModel.
FMFMModeУстанавливает медиаплеер на режим радио FM. Выводит команду STOP к графику CdPlayerBehaviorModel.

График CdPlayerBehaviorModel

Этот график активирует соответствующий рабочий режим для проигрывателя компакт-дисков в зависимости от входа, полученного от графика CdPlayerBehaviorModel.

Ключевые возможности графика

  • Перечислимые данные CMD и CdStatus

  • after временный логический оператор, чтобы управлять синхронизацией переходов во время вставки диска и извлечения

Стройте диаграмму поведения

В начале симуляции активируется состояние Empty.

Если булевы данные, DiscInsert равняется 1 (или true), переход к состоянию Inserting, происходят. После кратковременной задержки происходит переход к состоянию DiscPresent.

Состояние DiscPresent остается активным до данных, CMD становится EJECT. В той точке происходит переход к состоянию Ejecting. После кратковременной задержки происходит переход к состоянию Empty.

Каждый раз, когда изменение состояния происходит, перечислимые данные значение изменений CdStatus, чтобы отразить состояние проигрывателя компакт-дисков.

Активное состояниеЗначение перечислимых данных CdStatusПоведение проигрывателя компакт-дисков
EmptyEMPTYПроигрыватель компакт-дисков пуст.
InsertingDISCINSERTCD вставляется в проигрыватель.
EjectingEJECTCD извлекается от игрока.
DiscPresent.STOPSTOPCD присутствует и остановился.
DiscPresent.PLAYPLAYCD присутствует и проигрывание.
DiscPresent.REWREWCD присутствует и перемотка.
DiscPresent.FFFFCD является существующей и быстрой передачей.

Похожие темы