Remove rule from filter rule set
result = removeRule(filter,rule)
filter— Filter object to remove rule from
Filter object to remove the rule from, specified as an
rule— Rule to remove from the filter
Rule to remove from the filter, specified as an
result— Rule removal result
Rule removal result, returned as 0 or 1.
Create a block selector, a filter, and a rule for the selector. Add rules to the filter. Then, remove a rule from a filter.
Open the model. Specify coverage settings and turn on coverage recording.
modelName = 'sldemo_lct_bus'; open_system(modelName); set_param(modelName,'CovMetricSettings','dcme','RecordCoverage','on');
bl = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockType,'RelationalOperator'); id = Simulink.ID.getSID('sldemo_lct_bus/slCounter/And'); bl1 = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,id);
Create a filter object, create two rule objects, and add each rule to the filter object.
filt = slcoverage.Filter; rule = slcoverage.FilterRule(bl,'Tested elsewhere',slcoverage.FilterMode.Exclude); rule1 = slcoverage.FilterRule(bl1,'Value is never greater than 0'); filt.addRule(rule); filt.addRule(rule1);
Review the rules. Look the first rule in the array.
fi = filt.rules fi(1)
fi = 1×2 FilterRule array with properties: Selector Mode Rationale ans = FilterRule with properties: Selector: [1×1 slcoverage.BlockSelector] Mode: Exclude Rationale: 'Tested elsewhere'
Remove the first rule that you added. Then review the rules to see that the first rule that you added is removed.
filt.removeRule(rule); fi = filt.rules
fi = FilterRule with properties: Selector: [1×1 slcoverage.BlockSelector] Mode: Justify Rationale: 'Value is never greater than 0'