slcoverage. Класс BlockSelector

Пакет: slcoverage

Выберите блоки для фильтра покрытия

Описание

Задайте критерии выделения блока правила фильтра.

Конструкция

sel = slcoverage.BlockSelector(type,element) задает тип элементов модели, чтобы создать правило фильтра для и возвращает объект slcoverage.BlockSelector.

Входные параметры

развернуть все

Тип элемента модели, чтобы выбрать, заданный как одно из этих значений:

  • slcoverage.BlockSelectorType.BlockInstance — Экземпляр блока.

  • slcoverage.BlockSelectorType.BlockType — Все блоки заданного типа блока.

  • slcoverage.BlockSelectorType.Chart — График Stateflow®.

  • slcoverage.BlockSelectorType.MaskType — Блоки, которые используют заданный тип маски.

  • slcoverage.BlockSelectorType.State — Состояние Stateflow.

  • slcoverage.BlockSelectorType.StateAllContent — Состояние Stateflow и его содержимое.

  • slcoverage.BlockSelectorType.StateflowFunction — Функция Stateflow.

  • slcoverage.BlockSelectorType.Subsystem — Блок подсистемы.

  • slcoverage.BlockSelectorType.SubsystemAllContent — Подсистема и ее содержимое.

  • slcoverage.BlockSelectorType.TemporalEvent — Stateflow временное событие.

  • slcoverage.BlockSelectorType.Transition — Переход Stateflow.

Пример: slcoverage.BlockSelectorType.Transition

Элемент модели, чтобы выбрать, заданный как имя свойства элемента, его указателя или его идентификатора Simulink®. Используйте указатель или ID для селекторных типов, которые выбирают экземпляр. Используйте имя свойства, такое как значение свойства 'BlockType' блока, чтобы выбрать элементы многоуровневой модели.

Пример: 'sldemo_lct_bus:18', 'RelationalOperator'

Выходные параметры

развернуть все

Селекторный объект, возвращенный как объект slcoverage.BlockSelector или массив объектов slcoverage.BlockSelector.

Свойства

развернуть все

Это свойство доступно только для чтения.

Код, используемый, чтобы создать этот селекторный объект, возвратился как вектор символов.

Это свойство доступно только для чтения.

Описание селектора, возвращенного как вектор символов. Simulink Coverage™ создает описание на основе селектора.

Это свойство доступно только для чтения.

Идентификатор элемента модели, возвращенного как вектор символов ID Simulink, свойства элемента модели или указателя. Это свойство пусто для класса slcoverage.CodeSelector.

Это свойство доступно только для чтения.

Селекторный тип, возвращенный как одно из этих значений slcoverage.BlockSelectorType:

  • BlockInstance

  • BlockType

  • Chart

  • MaskType

  • State

  • StateAllContent

  • StateflowFunction

  • Subsystem

  • SubsystemAllContent

  • TemporalEvent

  • Transition

Методы

allSelectorsСелекторы для элемента модели или кода

Копировать семантику

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

Выберите несколько блоков, чтобы добавить правило для и экземпляр блока, чтобы добавить правило для. Получившийся фильтр имеет два правила. Можно моделировать модель для покрытия кода с помощью фильтра, чтобы видеть эффект.

Откройте модель. Задайте настройки покрытия и включите запись покрытия.

modelName = 'sldemo_lct_bus';
open_system(modelName);
set_param(modelName,'CovMetricSettings','dcme','RecordCoverage','on');

Выберите блоки, которые имеют тот же тип блока как блок upper GE input, чтобы добавить правило фильтра для.

type = get_param('sldemo_lct_bus/slCounter/upper GE input','BlockType');
bl = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockType,type);

Создайте объект фильтра, создайте правило на основе селектора и добавьте правило в фильтр.

filt = slcoverage.Filter;
rule = slcoverage.FilterRule(bl,'Tested elsewhere',slcoverage.FilterMode.Exclude);
filt.addRule(rule);

Выберите экземпляр блока и добавьте правило для экземпляра блока к фильтру. Это правило использует режим фильтра по умолчанию Justify.

id = Simulink.ID.getSID('sldemo_lct_bus/slCounter/And');
bl = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,id);
rule = slcoverage.FilterRule(bl,'Edge case');
filt.addRule(rule);

Сохраните фильтр как blfilter. Моделируйте модель для покрытия кода. Добавьте файл фильтра как значение к свойству filter получившегося объекта cvdata. Затем сгенерируйте отчет покрытия.

filt.save('blfilter');
csim = cvsim(modelName);
csim.filter = 'blfilter';
cvhtml('cov',csim);

Исследуйте отчет HTML, чтобы видеть информацию о блоках, для которых вы добавили правила.

Введенный в R2017b