Этот пример показывает простую модель наблюдателя фитнеса, реализованного при помощи оператора duration
в Stateflow®. Этот пример также демонстрирует рабочий процесс для того, чтобы создать модель Simulink®, которая может взаимодействовать с пользовательским интерфейсом, который был разработан с помощью App Designer MATLAB®.
У наблюдателя фитнеса в этой модели есть четыре части. Human_Simulator является подсистемой, моделируя ваше действие и выходные сигналы как ваш сердечный ритм и скорость. Наблюдателем фитнеса является диаграмма Stateflow, моделируя логику ядра, такой как, как определить ваше состояние и когда отослать различные полезные уведомления. Контроллером пользовательского интерфейса является диаграмма Stateflow, которая говорит с графическим интерфейсом пользователя (пользовательский интерфейс). Последняя часть является приложением, разработанным с MATLAB App Designer, который ответственен за реализацию пользовательского интерфейса и определение коллбэка.
Средства управления графиком Наблюдателя Фитнеса вывод фитнеса смотрят. Этот график получает входные параметры от подсистемы Human_Simulator, где сердечный ритм и скорость вычисляются. Это также получает входные параметры от панели Установки пользовательского интерфейса для параметров такой как, как скоро напомнить человеку для некоторого осуществления. Затем график определяет действие человека. Когда входные параметры от Human_Simulator активно изменяются, обнаруженное действие также изменяется. Этот переходный процесс отфильтровывает шумы сигнала при помощи оператора duration
. Например, в то время как вы отдыхаете, можно сделать некоторые быстрые и внезапные перемещения, но это не обязательно означает, что вы тренируетесь. Фитнес смотрит, думает, что вы идете или тренируетесь только после того, как перемещение длится в течение некоторого промежутка времени. Оператор duration
идеален для таких ситуаций, когда debouncing требуется. Наблюдатель Фитнеса графика также отслеживает длительность каждого действия. При различных условиях график отправляет сообщения Stateflow Контроллеру пользовательского интерфейса график, позволяя пользовательскому интерфейсу отобразить настроенные уведомления.
Выходные данные и сообщения из графика Наблюдателя Фитнеса обрабатываются Контроллером пользовательского интерфейса график. График говорит с пользовательским интерфейсом путем вызова функций обратного вызова, заданных в созданном приложении App Designer. Поскольку эти функции обратного вызова заданы в рамках приложения, они не сразу известны диаграмме Stateflow. Состояние Init
содержит скрипты, позволяющие Stateflow говорить с приложением. Путем объявления приложения называют sf_fitness_app
как coder.extrinsic
, модель Stateflow может открыть приложение и сохранить указатель приложения с помощью локального приложения данных. Путем объявления функций обратного вызова как coder.extrinsic
можно вызвать их где угодно в том же графике. Все функции обратного вызова из приложения берут локальные данные app
в качестве первого аргумента.
App Designer MATLAB может использоваться, чтобы быстро разметить визуальные компоненты пользовательского интерфейса посредством его Режима конструктора. Это может также использоваться, чтобы программировать поведение приложения через Представление кода. В этом примере модель, созданная Simulink® и Stateflow, может co-simulate с приложением, созданным App Designer MATLAB. Во время симуляции можно взаимодействовать с пользовательским интерфейсом, изменяя Сигналы Simulink, которые управляют входными параметрами к диаграммам Stateflow. Например, когда вы нажимаете остальных кнопка на пользовательском интерфейсе, постоянный блок под названием Действие изменяет свое значение на перечислимый Activity.Rest
. Затем Человеческое Средство моделирования начинает производить соответствующие сигналы, моделируя отдыхающего человека. С другой стороны, Stateflow может вызвать функции обратного вызова, заданные в приложении, которое изменяет отображение пользовательского интерфейса. Например, если вы остаетесь в состоянии Rest
для данного количества времени, график Наблюдателя Фитнеса отсылает сообщение Stateflow Контроллеру пользовательского интерфейса график, который вызывает коллбэк updateText
. Уведомление затем обнаруживается в основном отображении и заменяет часы в течение пяти секунд.