Моделируйте медиаплеер при помощи строк

Этот пример моделирует медиаплеер при помощи данных о строке в двух графиках языка действия Stateflow® C. Модель проигрывает клип музыки и других записанных заранее звуков. Во время симуляции графики используют строки, чтобы управлять поведением медиаплеера и обеспечить выходные сигналы естественного языка.

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

1. Моделируйте модель. Помощник Медиаплеера появляется.

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

  • CurrentRadioMode: "Standby (OFF)"

  • MechCmd: "STOP"

  • CdStatus: "EMPTY"

  • AlbumName: "None"

2. В разделе Radio Request нажмите CD.

  • Блок String Constant RR изменяется от "OFF" до "CD".

  • Блок Display для CurrentRadioMode изменяется от "Standby (OFF)" до "CD Player".

3. Нажмите Insert Disc.

  • Блок Display для AlbumName изменяется от "None" до "Handel's Greatest Hits".

  • Блок Display для CdStatus изменяется от "EMPTY" до "Reading: Handel's Greatest Hits" к "Stopped".

4. В разделе CD Request нажмите PLAY.

  • Блок String Constant CR и блок Display для MechCmd изменяется от "STOP" до "PLAY".

  • Блок Display для CdStatus изменяется от "Stopped" до "Playing: Handel's Greatest Hits".

  • Музыка начинает играть.

5. В разделе CD Request нажмите FF.

  • Музыкальные остановки и щебечущие звуки начинаются.

  • Блок String Constant CR и блок Display для MechCmd изменяется от "PLAY" до "FF".

  • Блок Display для CdStatus изменяется от "Playing: Handel's Greatest Hits" до "Forward >> Handel's Greatest Hits". Название альбома в этом сообщении прокручивает вперед через отображение.

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

График ModeManager

Этот график активирует соответствующий субкомпонент медиаплеера (радио AM, радио FM или проигрыватель компакт-дисков) в зависимости от входных параметров, полученных от Помощника Медиаплеера.

Ключевые возможности

  • Представьте данные в виде строки RadioReq, CdReq и поведение диаграммы управления MechCmd.

  • Представьте данные в виде строки, CurrentRadioMode предоставляет естественному языку вывод.

  • Операторы strcpy и = присваивают значения, чтобы представить данные в виде строки.

  • Операторы strcmp и == сравнивают значения данных о строке.

  • Оператор hasChanged обнаруживает изменения в значении RadioReq.

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

В начале симуляции состояние NormalOperation становится активным. Если булевы данные, DiscEject является 1 (или true), переход к состоянию Eject, происходят, сопровождаемые переходом назад к состоянию NormalOperation.

Когда NormalOperation активен, ранее активное подсостояние (Standby или ON), как зарегистрировано соединением истории становится активным. Последующие переходы между Standby и подсостояниями ON зависят от значения выражения strcmp(RadioReq,"OFF"):

  • Если strcmp возвращает значение нуля, то RadioReq является "OFF", и подсостояние Standby активируется.

  • Если strcmp возвращает ненулевое значение, то RadioReq не является "OFF", и подсостояние ON активируется.

В подсостоянии ON три подсостояния представляют рабочие режимы медиаплеера: Проигрыватель компакт-дисков, радио AM и радио FM. Каждое подсостояние соответствует различному значению данных о строке RadioReq. Внутренний переход в состоянии ON постоянно сканирует для изменений в значении RadioReq.

  • Если значением RadioReq является "CD", то CDMode подсостояния становится активным, устанавливая медиаплеер на режим проигрывателя компакт-дисков. ModeManager строят диаграмму выходных параметров "PLAY", "REW", "FF" и команд "STOP" к графику CdPlayer через данные о строке MechCmd.

  • Если значением RadioReq является "AM", то AMMode подсостояния становится активным, устанавливая медиаплеер на режим радио AM. ModeManager строят диаграмму выходных параметров команда "STOP" к графику CdPlayer через данные о строке MechCmd.

  • Если значением RadioReq является "FM", то FMMode подсостояния становится активным, устанавливая медиаплеер на режим радио FM. ModeManager строят диаграмму выходных параметров команда "STOP" к графику CdPlayer через данные о строке MechCmd.

График CdPlayer

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

Ключевые возможности

  • Представьте данные в виде строки поведение графика средств управления Cmd.

  • Представьте данные в виде строки NewAlbum, AlbumName, и CdStatus предоставляет естественному языку вывод.

  • Операторы = и == присваивают и сравнивают значения данных о строке.

  • Операторы strcat, strlen и substr производят текст в выводимой строке CdStatus.

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

  • Оператор пространства имен доступы ml MATLAB® play и stop функционирует, чтобы управлять музыкой и звуками.

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

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

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

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

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

  • Когда активным состоянием является Empty, значением CdStatus является "EMPTY".

  • Когда активным состоянием является Inserting, значением CdStatus является "Reading: AlbumName".

  • Когда активным состоянием является Ejecting, значением CdStatus является "Ejecting: AlbumName".

  • Когда активным состоянием является DiscPresent.STOP, значением CdStatus является "Stopped".

  • Когда активным состоянием является DiscPresent.PLAY, значением CdStatus является "Playing: AlbumName".

  • Когда активным состоянием является DiscPresent.REW, значением CdStatus является "Reverse << AlbumName", где AlbumName прокручивает назад через отображение.

  • Когда активным состоянием является DiscPresent.FF, значением CdStatus является "Forward >> AlbumName", где AlbumName прокручивает вперед через отображение.

Смотрите также

| | | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте