Сгенерируйте независимый исполняемый файл и взаимодействуйте с ним Используя UDP

В этом примере показано, как сгенерировать независимый исполняемый файл для потоковой передачи статистики с помощью MATLAB Coder™ и настроить сгенерированный исполняемый файл с помощью пользовательского интерфейса (UI), который запускается в MATLAB(TM).

Введение

Большинство алгоритмов в DSP System Toolbox™ поддерживает генерацию кода C с помощью MATLAB Coder.

Одна из опций MATLAB Coder должна сгенерировать независимый исполняемый файл, который может быть запущен за пределами среды MATLAB путем запуска исполняемого файла непосредственно от терминала или командной строки.

Для алгоритмов, которые являются настраиваемыми, желательно взаимодействовать с алгоритмом во времени выполнения с помощью пользовательского интерфейса. Один способ достигнуть этого путем отправки/получения информации через UDP.

Этот пример использует UDP, чтобы обмениваться между MATLAB и сгенерированным независимым исполняемым файлом во времени выполнения. Отклонение, смещение и экспоненциальные значения взвешивания отправляются от MATLAB до исполняемого файла. Фактический случайный сигнал наряду со средним значением, RMS и оценками отклонения отправляется от независимого исполняемого файла назад в MATLAB для графического вывода.

Архитектура в качестве примера

Архитектура примера состоит из двух первичных разделов:

  1. streamingStatsCodegenExampleApp: Функция MATLAB, которая создает пользовательский интерфейс (UI), чтобы изменить отклонение, смещение и экспоненциальные значения взвешивания. Эта функция также отображает на графике данные, полученные от независимого исполняемого файла.

  2. HelperStreamingStatsEXEProcessing: Это - функция, от которой сгенерирован независимый исполняемый файл. Эта функция генерирует случайный сигнал данного смещения и отклонения и вычисляет среднее значение, RMS и оценки отклонения такого сигнала. Шумовой сигнал наряду со статистическими данными, которые вычисляются, отправляется по UDP за графическим выводом (или дальнейшая обработка). В любое время во время симуляции, это может также ответить на изменения в ползунках пользовательского интерфейса MATLAB.

Генерация кода и создание исполняемого файла

Можно использовать MATLAB Coder, чтобы сгенерировать читаемый и автономный код С от кода алгоритма статистики потоковой передачи. Поскольку UDP используется, существуют дополнительные зависимости для сгенерированного кода и исполняемого файла. Они доступны в / каталоге bin вашей установки MATLAB.

Выполнение скрипта HelperStreamingStatsGenerateEXE вызовет MATLAB Coder, чтобы автоматически сгенерировать код С и независимый исполняемый файл от кода алгоритма, существующего в HelperStreamingStatsEXEProcessing.

Выполнение примера

Если вы сгенерировали исполняемый файл, запустите функциональный streamingStatsCodegenExampleApp запустить исполняемый файл и пользовательский интерфейс (UI), спроектированный, чтобы взаимодействовать с симуляцией. Пользовательский интерфейс позволяет вам настройкам параметров, и результаты отражаются в симуляции немедленно. Например, перемещение ползунка для 'Отклонения', в то время как симуляция запускается, будет влиять на шумовой сигнал наряду с RMS и оценками отклонения, которые построены.

Существует также две кнопки на пользовательском интерфейсе - кнопка 'Pause Simulation' будет содержать симуляцию, пока вы не нажмете на нем снова. Симуляция может быть отключена путем нажатия на кнопку 'Stop simulation'.

Поточная обработка

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

Вручную вызов исполняемого файла

Вместо использования system команда, чтобы запустить исполняемый файл из MATLAB, исполняемый файл может быть запущен вручную от терминала или командной строки. Поскольку этот исполняемый файл включает вызовы UDP, необходимо, чтобы dlls был на пути для правильного поведения. Смотрите, Как Запустить Сгенерированный Исполняемый файл Вне MATLAB для получения дополнительной информации.