В этом примере показано, как создать приложение для сбора данных с аналоговым запуском с помощью Stateflow ®, Data Acquisition Toolbox™ и App Designer.
Data Acquisition Toolbox предоставляет функциональные возможности для получения данных измерений с устройства DAQ или звуковой карты. Для некоторых приложений рекомендуется получение с аналоговым запуском, которое начинает сбор или регистрацию данных на основе условия в измеряемом аналоговом сигнале. Программно-аналоговая инициируемая регистрация позволяет захватывать только интересующий сегмент из непрерывного потока данных измерений. Например, можно записать аудиозапись, когда уровень сигнала превышает определенный порог.
В этом примере приложения, созданного с помощью App Designer и Stateflow, показано, как реализовать следующие операции:
Управление логикой состояния приложения с помощью диаграммы Stateflow.
Найдите доступные устройства DAQ и выберите устройство для использования.
Сконфигурируйте параметры сбора данных устройства.
Отображение живого графика в пользовательском интерфейсе приложения во время приобретения.
Выполнение захвата инициированных данных на основе программируемого условия триггера.
Сохранение собранных данных в базовой переменной рабочей области MATLAB ®.

По умолчанию приложение открывается в режиме конструктора в App Designer. Чтобы запустить приложение, нажмите кнопку Выполнить или запустите приложение из командной строки:
AnalogTriggerAppStateflow
В данном примере приложения требуется следующее:
MATLAB R2020a или более поздней версии.
Панель средств сбора данных (поддерживается только в Windows ®).
Поток состояния (только для создания и редактирования диаграмм).
Поддерживаемое устройство DAQ или звуковая плата. Например, любые национальные приборы или измерительные вычислительные устройства, поддерживающие аналоговый вход Voltage или IEPE измерения и сбор фоновых данных.
Соответствующий пакет аппаратной поддержки и драйверы устройств.
При создании приложения со сложной логикой учитывайте различные состояния, соответствующие режимам работы приложения. Для визуализации и организации этих состояний приложения можно использовать диаграмму Stateflow. Используйте переходы между состояниями для реализации управляющей логики приложения. Например, файл AnalogTriggerAppLogic.sfx определяет диаграмму Stateflow, которая управляет логикой этого приложения. Диаграмма может переходить между состояниями на основе действия в пользовательском интерфейсе приложения или условия, управляемого данными. Например, при нажатии кнопки «Пуск» диаграмма переходит из Configuration состояние в Acquisition состояние. Если значение сигнала пересекает заданный уровень триггера, диаграмма переходит из LookingForTrigger состояние в CapturingData состояние.

Чтобы установить двунаправленное соединение между приложением MATLAB и диаграммой Stateflow, в startupFcn создайте объект диаграммы и сохраните его дескриптор в свойстве приложения.
app.Chart = AnalogTriggerAppLogic('app',app);
Приложение использует этот дескриптор для запуска переходов состояний в диаграмме. Например, при нажатии кнопки «Пуск» StartButtonPushed функция обратного вызова приложения вызывает acquisitionStart входное событие для диаграммы. Это событие инициирует переход от Configuration состояние в Acquisition состояние.
Чтобы оценить условия перехода, которые не являются событиями в диаграмме, приложение вызывает step для объекта диаграммы. Например, при получении данных с устройства, dataAvailable_Callback функция приложения периодически вызывает step функция. При обнаружении условия триггера диаграмма переходит из LookingForTrigger Состояние для CapturingData состояние.
В диаграмме Stateflow сохраните дескриптор объекта приложения в виде локальных данных диаграммы. Чтобы поделиться общими свойствами и вызвать открытые функции приложения, диаграмма Stateflow может использовать этот дескриптор в действиях состояния, условиях перехода или действиях перехода.