Этот пример моделирует медиаплеер при помощи данных о строке в двух графиках языка действия 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". Название альбома в этом сообщении прокручивает вперед через отображение.
Чтобы видеть другие изменения в блоках Отображения, используйте Помощника Медиаплеера, чтобы выбрать другие рабочие режимы или ввести различное название альбома.
Этот график активирует соответствующий субкомпонент медиаплеера (радио 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.
Этот график активирует соответствующий рабочий режим для проигрывателя компакт-дисков в зависимости от входа, полученного от графика 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 прокручивает вперед через отображение.
после | strcat | strcmp | strcpy | strlen | substr