exponenta event banner

класс 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 - Состояние потока состояний.

  • slcoverage.BlockSelectorType.StateAllContent - Состояние потока состояния и его содержимое.

  • 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Селекторы для модели или элемента кода

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

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

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

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

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