Смоделируйте приложение фитнеса при помощи автономных диаграмм

В этом примере показано, как создать приложение, состоявшее из нескольких автономных диаграмм Stateflow® и приложения MATLAB®. Автономные диаграммы моделируют управление и системы объекта для приложения и интерфейса с приложением MATLAB. Для получения дополнительной информации о соединении автономной диаграммы к приложению MATLAB смотрите Логику Человеко-машинного интерфейса Проекта при помощи диаграмм Stateflow. Для версии этого примера, который использует диаграммы Stateflow в модели Simulink®, см. Модель Средство отслеживания Фитнеса.

В этом примере приложение MATLAB моделирует средство отслеживания фитнеса. Когда вы запускаете приложение, можно настроить настройки для средства отслеживания и выбрать действие (Сон, Отдых, Обход или Осуществление). Когда вы выбираете Exercise, можно также установить интенсивность тренировки.

Автономная диаграмма sf_fitness_interface обеспечивает двунаправленную связь между приложением MATLAB и другими автономными диаграммами в примере, sf_fitness_human и sf_fitness_tracker. Эти графики моделируют человеческое средство моделирования и обеспечивают логику ядра для средства отслеживания фитнеса, соответственно. Когда вы взаимодействуете с виджетами в приложении, sf_fitness_interface график передает ваши выборы к другим графикам в примере. С другой стороны график использует выход средства отслеживания фитнеса, чтобы обновить числовые и текстовые поля в приложении.

Эта принципиальная схема иллюстрирует передачу информации между приложением и графиками в примере.

Чтобы запустить пример, запустите sf_fitness_sfx_app приложение. Приложение создает объект диаграммы для sf_fitness_interface. Этот график, в свою очередь, создает объекты диаграммы для других двух графиков в примере. График также создает timer MATLAB объект, который выполняет все три графика на частоте, пропорциональной сердечному ритму в человеческом графике средства моделирования. В то время как пример запускается, одна секунда симуляции представляет одну минуту времени осуществления. Чтобы остановить пример, закройте приложение.

Соедините график с приложением MATLAB

График sf_fitness_interface сконфигурирован, чтобы передать с приложением MATLAB sf_fitness_sfx_app.

  • График использует локальный объект данных app взаимодействовать через интерфейс с приложением MATLAB. График использует этот локальный объект данных, когда это вызывает функции помощника updateStatus, updateClockОбновление текста, updateSteps, и updateHeartRate. В приложении эти функции помощника изменяют содержимое состояния действия, часов и полей счетчика шага, и создают эффекты анимации в отображениях шага и heartbeat. Например, когда существует новое уведомление от средства отслеживания фитнеса, MainDisplay подсостояния вызывает функцию помощника updateText. Эта функция заменяет содержимое отображения часов с индивидуально настраиваемым уведомлением. После малой задержки подсостояние вызывает функцию помощника updateClock восстановить отображение часов.

  • Приложение использует свойство под названием chart взаимодействовать через интерфейс с графиком. Приложение использует это свойство считать график локальные данные. Например, помощник функционирует updateHeartRate и updateSteps считайте график локальные данные heart_rate и total_steps, соответственно. Кроме того, когда вы закрываете приложение, UIFigureCloseRequest коллбэк использует chart свойство остановить выполнение графиков в примере путем удаления их объектов диаграммы.

Для получения дополнительной информации о том, как создать двунаправленную связь между вашим приложением MATLAB и автономной диаграммой Stateflow, смотрите Логику Человеко-машинного интерфейса Проекта при помощи диаграмм Stateflow.

Установить связи с человеческим средством моделирования и графиками средства отслеживания фитнеса, sf_fitness_interface график сохраняет их объекты диаграммы как локальные данные human и tracker. Функции MATLAB уровня графика updateHuman и updateTracker используйте эти объекты записать в и читать из локальных данных в графиках. Например, когда вы выбираете новое действие или меняете интенсивность вашей тренировки в Человеческой панели Средства моделирования приложения, updateHuman устанавливает значение локальных данных activity и intensity в человеческом графике средства моделирования. Точно так же, когда вы изменяете значение одного из полей в панели Настроек приложения, updateTracker обновляет значение соответствующих локальных данных в графике средства отслеживания фитнеса.

Симулируйте основные показатели жизнедеятельности на основе действия

Человеческое средство моделирования строит диаграмму sf_fitness_human моделирует основные показатели жизнедеятельности человека, занятого действием, которое вы выбираете в приложении. График хранит эти основные показатели жизнедеятельности (представляющий ваш сердечный ритм, скорость и количество шагов, которые вы сделали) как локальные переменные, к которым может получить доступ средство отслеживания фитнеса. Когда вы выбираете новое действие или настраиваете интенсивность вашей тренировки, график вызывает функциональный transition гарантировать, что эти основные показатели жизнедеятельности изменяются постепенно в зависимости от времени. Чтобы обнаружить изменения в интенсивности действия или осуществления, график вызывает hasChanged оператор. Для получения дополнительной информации смотрите, Обнаруживают Изменения в Значениях Данных и Выражения.

Определите средство отслеживания фитнеса Выход

График sf_fitness_tracker моделирует логику ядра средства отслеживания фитнеса. График состоит из четырех субдиаграмм, которые соответствуют возможным действиям. График указывает ваше состояние действия на основе сердечного ритма и скорости, произведенной человеческим графиком средства моделирования и переходами между этими субдиаграммами. Чтобы отфильтровать шум сигнала, график использует count оператор, чтобы реализовать простую debouncing логику. Например, когда вы в покое, можно сделать некоторые быстрые и внезапные перемещения, которые не соответствуют осуществлению. График решает, что вы идете или тренируетесь, только если ваше движение длится дольше, чем две оценки объекта диаграммы.

График использует другие временные логические операторы, чтобы отследить количество времени, которое вы проводите в каждом действии и определяете, когда отправить уведомления приложению:

  • Выходные действия в каждой субдиаграмме вызывают elapsed оператор, чтобы определить, сколько времени субдиаграмма была активна.

  • График использует after оператор, чтобы определить, когда вы спите или идете для дольше, чем пять минут, отдых или осуществление для дольше, чем порог, вы задаете в приложении или осуществлении в высокой интенсивности (делающий больше чем 4 шага в секунду) для дольше, чем 15 минут. В каждом из этих случаев график обновляет значение локальных данных notification. sf_fitness_interface график читает это значение и заставляет уведомление появляться в основном отображении приложения. В зависимости от типа уведомления кнопка уведомления изменяет цвет.

Смотрите также

| |

Похожие темы