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

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

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

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

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

  • CurrentRadioMode: "Standby (OFF)"

  • MechCmdостановка

  • CdStatusпустой

  • 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 предоставьте естественному языку выход.

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

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

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

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

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

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

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

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

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

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

  • Когда активным состоянием является 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 прокрутки передают через отображение.

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

| | | | |

Похожие темы