slcoverage.BlockSelector class

Пакет: 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' блока свойство, чтобы выбрать элементы многоуровневой модели.

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

Атрибуты:

SetAccess

защищенный

Типы данных: char | string | handle | integer

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

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

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

Свойства

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

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

Атрибуты

SetAccess

защищенный

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

Атрибуты

SetAccess

защищенный

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

Атрибуты

SetAccess

защищенный

Типы данных: char | string | handle | integer

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

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

  • BlockInstance

  • BlockType

  • Chart

  • MaskType

  • State

  • StateAllContent

  • StateflowFunction

  • Subsystem

  • SubsystemAllContent

  • TemporalEvent

  • Transition

Методы

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

Примеры

свернуть все

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

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

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

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

type = get_param('slcoverage_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('slcoverage_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