slcoverage.BlockSelector class

Пакет: slcoverage

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

Описание

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

Конструкция

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

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

расширить все

Тип выбираемого элемента модели, заданный как одно из следующих значений:

  • slcoverage.BlockSelectorType.BlockInstance - образец блока.

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

  • slcoverage.BlockSelectorType.Chart - A 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. Используйте указатель или идентификатор для типов селектора, выбирающих образец. Используйте имя свойства, например значение 'BlockType' блока свойство, чтобы выбрать несколько элементов модели.

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

Атрибуты:

SetAccess

защищенный

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

Выходы

расширить все

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

Свойства

расширить все

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

Признаки

SetAccess

защищенный

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

Признаки

SetAccess

защищенный

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

Признаки

SetAccess

защищенный

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

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

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

  • BlockInstance

  • BlockType

  • Chart

  • MaskType

  • State

  • StateAllContent

  • StateflowFunction

  • Subsystem

  • SubsystemAllContent

  • TemporalEvent

  • Transition

Методы

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

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

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

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

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

modelName = 'sldemo_lct_bus';
open_system(modelName);
set_param(modelName,'CovMetricStructuralLevel','MCDC','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