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