这个示例展示了如何配置由遗留代码工具生成的S-Function,使其与覆盖率兼容。模型覆盖工具支持以下s -功能:万博1manbetx
使用遗留代码工具生成def.Options.万博1manbetxsupportCoverage
着手真正的
,
使用SFunctionBuilder生成,使用支持覆盖万博1manbetx在编译信息SFunctionBuilder对话框的选项卡,或
用slcovmex
作用
示例模型sldemo\U lct\U总线包含使用旧代码工具生成的S函数。S函数具有接收决策、条件和MCDC覆盖范围的结构。
文件中的遗留源代码柜台巴士,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
,麦克辛福
.