exponenta event banner

slvnvruncgvtest

Вызвать API проверки генерации кода (CGV) и модель выполнения

Описание

cgvObject = slvnvruncgvtest(model, dataFile) вызывает методы API проверки генерации кода (CGV) и выполняет model используя все тестовые случаи в dataFile. cgvObject является cgv.CGV объект, который slvnvruncgvtest создает во время выполнения model. slvnvruncgvtest устанавливает режим выполнения для cgvObject кому'sim' по умолчанию.

cgvObject = slvnvruncgvtest(model, dataFile, runOpts) вызывает методы API CGV и выполняет команду model с использованием тестовых примеров в dataFile. runOpts определяет опции для выполнения тестовых примеров. Настройки в runOpts определить конфигурацию cgvObject.

Входные аргументы

свернуть все

Имя выполняемой модели Simulink ®.

Имя файла данных или структуры, содержащей входные данные. Создайте данные, выполнив одно из следующих действий:

  • Использование программного обеспечения Simulink Design Verifier™ для анализа модели.

  • Использование slvnvlogsignals функция.

Поля runOpts укажите конфигурацию slvnvruncgvtest .

Имя поляОписание
testIdx

Массив индекса тестового случая для моделирования из dataFile.

Если testIdx = [] (по умолчанию), slvnvruncgvtest имитирует все тестовые случаи.

allowCopyModel

Если модель не настроена на выполнение тестовых примеров с помощью API CGV, в этом поле указывается создание и настройка модели.

Если true и вы не настроили model для выполнения тестовых примеров с помощью API CGV, slvnvruncgvtest копирует модель, исправляет конфигурацию и выполняет тестовые примеры скопированной модели.

Если false (по умолчанию), ошибка возникает, если тесты не могут выполняться с помощью API CGV.

Примечание

Если модель верхнего уровня или ссылочные модели не настроены для выполнения тестовых примеров, slvnvruncgvtest не копирует модель, даже если allowCopyModel является true. Возникает ошибка.

cgvCompType

Определяет подход «программное обеспечение в контуре» (SIL) или «процессор в контуре» (PIL) для CGV:

  • 'topmodel' (по умолчанию)

  • 'modelblock'

cgvConn

Определяет режим выполнения для CGV:

  • 'sim' (по умолчанию)

  • 'sil'

  • 'pil'

Примечание

runOpts = slvnvruntestopts('cgv') возвращает runOpts со значениями по умолчанию для каждого поля.

Выходные аргументы

свернуть все

cgv.CGV (Внедренный кодер) объект, который slvnvruncgvtest создает во время выполнения model.

slvnvruncgvtest сохраняет следующие данные для каждого тестового случая, выполненного в массиве Simulink.SimulationOutput объекты внутри cgvObject.

Область

Описание

tout_slvnvruncgvtest

Время моделирования

xout_slvnvruncgvtest

Данные о состоянии

yout_slvnvruncgvtest

Данные выходного сигнала

logsout_slvnvruncgvtest

Данные регистрации сигналов для:

  • Сигналы, подключенные к выходам

  • Сигналы, настроенные для регистрации данных в модели

Примеры

Регистрация сигналов, выполнение тестов и сравнение результатов с помощью API CGV

% Open the sldemo_mdlref_basic example model and log the input signals to the CounterA Model block:
open_system('sldemo_mdlref_basic');
load_system('sldemo_mdlref_counter');
loggedData = slvnvlogsignals('sldemo_mdlref_basic/CounterA');

% Create the default configuration object for slvnvruncgvtest,and allow the model to be configured to
% execute test cases with the CGV API:
runOpts = slvnvruntestopts('cgv');
runOpts.allowCopyModel = true;

% Using the logged signals, execute slvnvruncgvtest — first in simulation mode, and then in 
% Software-in-the-Loop (SIL) mode — to invoke the CGV API and execute the specified test 
% cases on the generated code for the model:
cgvObjectSim = slvnvruncgvtest('sldemo_mdlref_counter', loggedData, runOpts);
runOpts.cgvConn = 'sil';
cgvObjectSil = slvnvruncgvtest('sldemo_mdlref_counter', loggedData, runOpts);

% Use the CGV API to compare the results of the first test case:
simout = cgvObjectSim.getOutputData(1);
silout = cgvObjectSil.getOutputData(1);
[matchNames, ~, mismatchNames, ~ ] = cgv.CGV.compare(simout, silout);
fprintf('\nTest Case:  %d Signals match, %d Signals mismatch', ...
        length(matchNames), length(mismatchNames));

Совет

Бежать slvnvruncgvtest, необходимо иметь ПО Embedded Coder ®.

Если в модели имеются параметры, не настроенные для выполнения тестовых примеров с помощью API CGV, slvnvruncgvtest сообщает предупреждения о недопустимых параметрах. При появлении этих предупреждений выполните одно из следующих действий.

  • Изменение недопустимых параметров и повторный запуск slvnvruncgvtest.

  • Набор allowCopyModel в runOpts быть true и повторно запустить slvnvruncgvtest. slvnvruncgvtest создает копию модели, сконфигурированной для выполнения тестовых примеров, и вызывает API CGV.

См. также

| | | (встроенный кодер)

Представлен в R2010b