Main Content

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

removeRule

类: slcoverage.Filter
命名空间: slcoverage

从过滤器规则集中删除规则

语法

result = removeRule(filter,rule)

说明

result = removeRule(filter,rule) 从指定的过滤器中删除过滤器规则。

输入参数

全部展开

要从中删除规则的过滤对象,指定为 slcoverage.Filter 对象。

从过滤器中删除的规则,指定为 slcoverage.FilterRule 对象。

输出参量

全部展开

规则删除结果,返回 0 或 1。

示例

全部展开

此示例显示如何以编程方式从覆盖率过滤器中删除规则。

打开模型并指定覆盖率设置。

modelName = 'slcoverage_lct_bus';
open_system(modelName);
set_param(modelName,'CovMetricStructuralLevel','MCDC',...
                    'RecordCoverage','on');

创建两个 BlockSelector 对象,blockSel1blockSel2

blockSel1 = slcoverage.BlockSelector(...
            slcoverage.BlockSelectorType.BlockType,'RelationalOperator');
blockSel2 = slcoverage.BlockSelector(...
            slcoverage.BlockSelectorType.BlockInstance,...
            'slcoverage_lct_bus/slCounter/And');

创建一个过滤器对象,创建两个规则对象,并将每个规则添加到过滤器对象。

filt = slcoverage.Filter;
rule1 = slcoverage.FilterRule(blockSel1,'Tested elsewhere',...
                              slcoverage.FilterMode.Exclude);
rule2 = slcoverage.FilterRule(blockSel2,'Value is never greater than 0');
filt.addRule(rule1);
filt.addRule(rule2);

审查规则。查找数组中的第一个规则。

filtRules = filt.rules
filtRules(1)
filtRules = 

  1x2 FilterRule array with properties:

    Selector
    Mode
    Rationale


ans = 

  FilterRule with properties:

     Selector: [1x1 slcoverage.BlockSelector]
         Mode: Exclude
    Rationale: 'Tested elsewhere'

删除您添加的第一条规则。然后检查规则,发现您添加的第一条规则已被删除。

filt.removeRule(rule1);
filtRules = filt.rules
filtRules = 

  FilterRule with properties:

     Selector: [1x1 slcoverage.BlockSelector]
         Mode: Justify
    Rationale: 'Value is never greater than 0'

版本历史记录

在 R2017b 中推出