主要内容

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

slvnvruncgvtest

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

说明

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

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

示例

示例

全部折叠

此示例展示了如何使用代码生成 API 记录信号、运行测试和比较生成的代码的结果。

打开包含示例文件的目录。

openExample('simulink/ExamineMultipleReferencedModelInstancesExample')

打开 sldemo_mdlref_basic 示例模型并将输入信号记录到 CounterA 模型模块。

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

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

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

首先在普通模式下使用记录的信号执行测试,然后在软件在环(SIL) 模式下执行测试。

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

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

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® Design Verifier™ 软件对模型进行分析。

  • 使用 slvnvlogsignals 函数。

仿真运行选项,指定为结构体数组。runOpts 的字段指定了 slvnvruncgvtest 的配置。

字段名称描述
testIdx

dataFile 进行仿真的测试用例索引数组。

如果 testIdx = [](默认),slvnvruncgvtest 仿真所有测试用例。

allowCopyModel

如果您尚未配置模型以使用 CGV API 执行测试用例,则此字段指定创建和配置模型。

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

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

注意

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

cgvCompType

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

  • 'topmodel'(默认值)

  • 'modelblock'

cgvConn

指定 CGV 的执行模式:

  • 'sim'(默认值)

  • 'sil'

  • 'pil'

注意

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

输出参量

全部折叠

代码生成验证分析结果,以 cgv.CGV (Embedded Coder) 对象形式返回。

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

字段

描述

tout_slvnvruncgvtest

仿真时间

xout_slvnvruncgvtest

状态数据

yout_slvnvruncgvtest

输出信号数据

logsout_slvnvruncgvtest

信号记录数据:

  • 连接到输出端口的信号

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

提示

要运行 slvnvruncgvtest,您必须拥有 Embedded Coder® 许可证。

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

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

  • allowCopyModel 中的 runOpts 设置为 true 并重新运行 slvnvruncgvtestslvnvruncgvtest 复制配置为执行测试用例的模型,并调用 CGV API。

您不能在使用配置集引用的模型上运行 slvnvruncgvtest。考虑改变您的模型以包含配置集的副本而不是对它的引用。

版本历史记录

在 R2010b 中推出

另请参阅

(Embedded Coder) | | |