Main Content

本页采用了机器翻译。点击此处可查看英文原文。

sldvruncgvtest

调用代码生成验证 (CGV) API 并执行模型

说明

cgvObject = sldvruncgvtest(model, dataFile) 调用代码生成验证 (CGV) API 方法并使用 dataFile 中的所有测试用例执行 modelcgvObjectsldvruncgvtest 在执行 model 期间创建的 cgv.CGV 对象。 sldvruncgvtest 默认将 cgvObject 的执行模式设置为'sim'

示例

cgvObject = sldvruncgvtest(model, dataFile, runOpts) 调用 CGV API 方法并使用 dataFile 中的测试用例执行 modelrunOpts 定义执行测试用例的选项。runOpts 中的设置决定了 cgvObject 的配置。

示例

全部折叠

sldvruncgvtest创建默认配置对象,并在模型的生成代码上执行指定的测试用例。

打开示例模型 sldemo_mdlref_basic。将输入信号记录到计数器 A Model模块。

openExample('sldemo_mdlref_basic');
open_system('sldemo_mdlref_basic');
load_system('sldemo_mdlref_counter');
loggedData = sldvlogsignals('sldemo_mdlref_basic/CounterA');

sldvruncgvtest创建默认配置对象,并允许配置模型以使用 CGV API 执行测试用例。

runOpts = sldvruntestopts('cgv');
runOpts.allowCopyModel = true;

要调用 CGV API 并在模型生成的代码上执行指定的测试用例,请使用记录的信号,执行 sldvruncgvtest——首先在仿真模式下,然后在软件在环(SIL) 模式下。

cgvObjectSim = sldvruncgvtest('sldemo_mdlref_counter', loggedData, runOpts);
runOpts.cgvConn = 'sil';
cgvObjectSil = sldvruncgvtest('sldemo_mdlref_counter', loggedData, runOpts);

使用CGV API 比较第一个测试用例的结果。

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));

输入参数

全部折叠

要执行的 Simulink®模型的名称或句柄。

包含输入数据的数据文件或结构体的名称。您可以通过以下任一方法生成数据:

  • 使用Simulink Design Verifier™软件对模型进行分析。

  • 使用 sldvlogsignals 函数。

其字段指定 sldvruncgvtest 的配置的结构体。

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来

示例: 'Description','My new description.'

dataFile 执行的测试用例索引数组。如果 testIdx[],则 sldvruncgvtest 执行 dataFile 中的所有测试用例。

默认: []

如果您尚未配置模型,请指定创建并配置模型以使用 CGV API 执行测试用例。

如果 true 并且您尚未配置 model 使用 CGV API 执行测试用例,则 sldvruncgvtest 会复制模型、修复配置,然后在复制的模型上执行测试用例。

如果是 false(默认值),则如果测试无法使用 CGV API 执行,则会发生错误。

注意

如果您没有配置顶层模型或者任何引用的模型来执行测试用例,sldvruncgvtest 不会复制模型,即使 allowCopyModeltrue 。出现错误。

定义 CGV 的软件在环(SIL) 或处理器在环(PIL) 方法:

  • 'topmodel'(默认)

  • 'modelblock'

指定 CGV 的执行模式:

  • 'sim'(默认)

  • 'sil'

  • 'pil'

注意

runOpts = sldvruntestopts('cgv') 返回一个 runOpts结构体,其中包含每个字段的默认值。

输出参量

全部折叠

sldvruncgvtest 在执行 model 期间创建的 cgv.CGV (Embedded Coder) 对象。

sldvruncgvtest 将执行的每个测试用例的以下数据保存在 cgvObject 内的 Simulink.SimulationOutput 对象数组中。

字段

描述

tout_sldvruncgvtest

仿真时间

xout_sldvruncgvtest

状态数据

yout_sldvruncgvtest

输出信号数据

logsout_sldvruncgvtest

信号记录数据:

  • 连接到输出端口的信号

  • 配置用于记录模型的信号

提示

要运行 sldvruncgvtest,您必须有 Embedded Coder®

如果您的模型具有未配置为使用 CGV API 执行测试用例的参数,则 sldvruncgvtest 会报告有关无效参数的警告。如果您看到这些警告,请执行以下操作之一:

  • 修改无效的参数并重新运行sldvruncgvtest

  • runOpts 中的 allowCopyModel 设置为 true 并重新运行 sldvruncgvtestsldvruncgvtest 使用相同配置复制模型并调用 CGV API。

版本历史记录

在 R2010b 中推出