Этот пример моделирует медиаплеер при помощи данных о строке в двух графиках языка действия 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
предоставьте естественному языку выход.
Операторы =
и ==
присвойте и сравните значения данных о строке.
Операторы 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
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