主要内容

覆盖S-Functions

这个示例展示了如何配置由遗留代码工具生成的S-Function,使其与覆盖率兼容。模型覆盖工具支持以下s -功能:万博1manbetx

  • 使用遗留代码工具生成def.Options.万博1manbetxsupportCoverage着手真正的,

  • 使用SFunctionBuilder生成,使用支持覆盖万博1manbetx编译信息SFunctionBuilder对话框的选项卡,或

  • slcovmex作用

开放示例模型

示例模型sldemo\U lct\U总线包含使用旧代码工具生成的S函数。S函数具有接收决策、条件和MCDC覆盖范围的结构。

打开sldemo\U lct\U总线

将S功能配置为与车型覆盖范围兼容

文件中的遗留源代码柜台巴士,counterbus.c实现与中相同的算法sldemo\U lct\U总线/SLT计数器.遗留代码工具数据结构定义如下:

加载系统(“sldemo\U lct\U总线”)开放式系统(“sldemo_lct_bus / TestCounter”);def = legacy_code (“初始化”);def.SFunctionName=“sldemo\u sfun\u计数器总线”;def.OutputFcnSpec ='无效计数器总线FCN(计数器总线u1[1],int32 u2,计数器总线y1[1],int32 y2[1])';def.HeaderFiles = {“counterbus.h”}; def.SourceFiles={“counterbus.c”};

要使此S功能与车型覆盖范围兼容,请启用以下选项:

def.Options.万博1manbetxsupportCoverage=true;

方法生成和编译s函数旧式代码功能:

旧式代码(“为sim卡生成sim卡”,def);
###开始编译sldemo\U sfun\U计数器总线mex-I/tmp/Bdoc20b\U 1465442\U 241683/tp0cb8b3f7/ex71096464-c/tmp/Bdoc20b\U 1465442\U 241683/tp98b520d7\U 1a19\U 42f0\U a313\U 0ad39157d747/counterbus.c-outdir/tmp/Bdoc20b\U 1465442\U 241683/TPEC333D\U F5444\U 47b3\U 8161\U 167A773D大楼,其中“tmp/TPOC20B\U/2414638B”已成功完成7/Ex71096466 6 6 6 6 6 6 4/tmp/BDO8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8“gcc”。MEX已完成sucmex-I/tmp/BDOcocococo8 8 BB8BB3F7/EX710964-c/tmp/BDOco8 B8B8B8B8B8B8B77/EX7104 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4/tp98b5207、7、7、7、6、7、7、7、7、7、7、7、7、7、7、7、7、8、c/tmp/Bdoc20b、145442、U 24163/TPP/Bdoc20b、4、6、8、8、8、6、7、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、8、34.c/tmp/Bdoc20b_1465442_241683/tpec33374d_f544_47b3_8161_b0167a77339d/计数器总线.o-L/mathworks/devel/bat/Bdoc20b/build/matlab/bin/glnxa64-lmwsl_sfcn_cov_桥-输出sldemo_sfun_带有“gcc”的对抗总线构建。MEX成功完成。####完成sldemo U sfun#u对抗总线的编译##退出

使功能覆盖率

要启用S-Functions的覆盖收集,请选择C / c++ S-Functions“配置参数”的覆盖窗格对话框。或者,通过命令行设置该选项:

set_param (“sldemo\U lct\U总线”,...“CovMetricSettings”,“dcme”,...“记录覆盖率”,“开”,...“CovSFcnEnable”,“开”...);

运行模拟并生成覆盖率报告

启用覆盖率数据采集后,模拟模型时会自动记录覆盖率信息。模拟结束时,可以生成覆盖率信息的HTML报告,该报告显示在内置的MATLAB®web浏览器中。

模拟(“sldemo\U lct\U总线”,“停车时间”,'20');cvhtml(“覆盖范围结果”,covdata);

从覆盖数据对象中提取信息

这个cvdata对象可用于提取S-Functions的覆盖率信息,就像任何其他受支持的模型元素一样。万博1manbetx例如,决策信息命令从块路径或块句柄提取覆盖率信息。输出是一个向量,包含单个模型对象的满意结果和总体结果。

cov=决策信息(cov数据,“sldemo_lct_bus / TestCounter / sldemo_sfun_counterbus”)
cov=3.4

然后使用此覆盖率信息计算覆盖模型对象的百分比:

percentCov = 100 * (cov(1)/cov(2))
percentCov = 75

S-Function coverage与model coverage命令完全兼容,例如决策信息,conditioninfo,麦克辛福.