В этом примере показана простая модель логики CD-проигрывателя/радио, которая использует таблицы переходов состояний в Stateflow ®. Эта модель является реимплементацией sf_cdplayer
Использование таблиц переходов состояний.
Ядро логики управления CD-проигрывателем/Радио находится в графике «CdPlayerModeManager», которая разработана с использованием таблицы переходов состояний. Таблица используется для представления модальной логики в табличной форме. Это позволяет нам определять различные состояния и их иерархическую структуру наряду с переходами между состояниями.
Самый левый столбец представляет все состояния в таблице. Заметьте, что состояния могут быть вложены иерархически. Можно выбрать одно из состояний, которое будет состоянием по умолчанию на любом заданном уровне. Это представлено переходом по умолчанию, проведенным слева от состояния. Можно также добавить «строки перехода по умолчанию», если существует логика, участвующая в выборе первого состояния для входа.
Вы можете добавить историческое соединение к заданному состоянию, щелкнув правой кнопкой мыши состояние и выбрав 'Добавить историческое соединение'. Это позволяет государству запоминать последнее активное состояние при повторном вводе вместо выбора состояния по умолчанию. Для примера состояния ModeManager и ON имеют исторические соединения. Диаграмма Stateflow может быть автоматически сгенерирована из этого табличного представления.
Следующий набор столбцов представляет внешние переходы от состояния. Каждая строка представляет внешние переходы от заданного состояния. Каждая из переходных камер подразделяется на три подкамеры:
1) камера условия: чтобы задать логическое условие, которое задает, когда переход активен
2) камера действия условия: чтобы задать действие, которое должно быть сделано, когда переход активен
3) Целевая камера: чтобы задать состояние назначения для перехода. Заметьте, что вы можете использовать специальные ключевые слова, такие как «$ NEXT», «$ PREV», чтобы задать назначение относительно текущего состояния.
Этот график получает пользовательские входы, такие как вставка диска и выбор для режима радиосвязи (FM, AM или CD). Затем график определяет выводимую механическую команду. Типы данных входных и выходных данных определяются как типы перечисленных данных в файлах MATLAB ® CdRequestMode.m
и RadioRequestMode.m
.
Выходная команда из «CdPlayerModeManager» обрабатывается графиком «CdPlayerBehaviorModel», которая моделирует поведение механизма CD Player. Эта логика также реализована с помощью таблицы переходов состояний.
Пользовательский интерфейс MATLAB используется для установки различных режимов CD/Radio.