allSelectors

Класс: slcoverage. BlockSelector, slcoverage. CodeSelector, slcoverage. Селектор, шланг. MetricSelector, slcoverage. SFcnSelector
Пакет: slcoverage

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

Синтаксис

sel = slcoverage.Selector.allSelectors(element)
sel = slcoverage.BlockSelector.allSelectors(element)
sel = slcoverage.CodeSelector.allSelectors(element)
sel = slcoverage.CodeSelector.allSelectors(element,Name,Value)
sel = slcoverage.MetricSelector.allSelectors(element)
sel = slcoverage.SFcnSelector.allSelectors(element)
sel = slcoverage.Selector.allSelectors(element,Name,Value)

Описание

sel = slcoverage.Selector.allSelectors(element) возвращает все селекторы для элемента модели.

sel = slcoverage.BlockSelector.allSelectors(element) возвращает все селекторы блоков для element.

sel = slcoverage.CodeSelector.allSelectors(element) возвращает все пользовательские селекторы кода C/C + + для element.

sel = slcoverage.CodeSelector.allSelectors(element,Name,Value) , где element является моделью и Name,Value задает режим симуляции, возвращает все пользовательские селекторы кода C/C + + для модели в заданном режиме симуляции.

sel = slcoverage.MetricSelector.allSelectors(element) возвращает все метрические селекторы для element.

sel = slcoverage.SFcnSelector.allSelectors(element) возвращает все селекторы S-функций для element.

sel = slcoverage.Selector.allSelectors(element,Name,Value) возвращает селекторы для element, с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

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

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

Моделируйте элемент, который нужно выбрать, заданный как указатель или элемент модели Simulink® идентификатор.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Type',slcoverage.BlockSelectorType.BlockInstance,'Description','F outcome'

Уточнение типа селектора, заданное как одно из slcoverage.BlockSelectorTypeslcoverage.CodeSelectorType, slcoverage.MetricSelectorType, или slcoverage.SFcnSelectorType значения. Возможные значения:

  • Типы селекторов блоков:

    • 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.CodeSelectorType.File - Настраиваемое имя файла кода C or C++.

    • slcoverage.CodeSelectorType.Function - Настраиваемое имя функции кода C or C++.

    • slcoverage.CodeSelectorType.Decision - Пользовательское решение кода C или C++.

    • slcoverage.CodeSelectorType.Condition - Пользовательское условие кода C or C++.

    • slcoverage.CodeSelectorType.DecisionOutcome - Пользовательский результат принятия решения по коду C or C++.

    • slcoverage.CodeSelectorType.ConditionOutcome - Пользовательский результат условия кода C or C++.

    • slcoverage.CodeSelectorType.MCDCOutcome - Пользовательский результат MCDC кода C или C++.

    • slcoverage.CodeSelectorType.RelationalBoundaryOutcome - Пользовательский результат реляционной границы кода C или C++.

  • Типы селектора метрики:

    • slcoverage.MetricSelectorType.ConditionOutcome объекты выбирают условие метрические целевые результаты.

    • slcoverage.MetricSelectorType.DecisionOutcome объекты выбирают целевые результаты метрики принятия решений.

    • slcoverage.MetricSelectorType.MCDCOutcome объекты выбирают метрические целевые результаты MCDC.

    • slcoverage.MetricSelectorType.RelationalBoundaryOutcome объекты выбирают метрики результата, связанные с результатами реляционных границ.

    • slcoverage.MetricSelectorType.SaturationOverflowOutcome объекты выбирают метрики результата, связанные с насыщением на результатах целочисленного переполнения.

  • Типы селекторов S-функций:

    • slcoverage.SFcnSelectorType.SFcnName выбирает указанную S-функцию.

    • slcoverage.SFcnSelectorType.SFcnInstanceCppFileName выбирает данные покрытия в файле сгенерированного кода для этого блока.

    • slcoverage.SFcnSelectorType.SFcnInstanceCppFunction выбирает функцию.

    • slcoverage.SFcnSelectorType.SFcnInstanceCppCondition выбирает результат условия блока s-function.

    • slcoverage.SFcnSelectorType.SFcnInstanceCppDecision выбирает результат решения блока s-function.

Описание текста, соответствующего селектору, который вы хотите вернуть, заданное как вектор символов или строка. Например, если вы хотите вернуть только селекторы, которые включают текст F outcome в описании используйте следующий синтаксис:

s = slcoverage.Selector.allSelectors(id,'Description','F outcome')

Режим симуляции для выполнения при выборе фильтров кода, введенный как один из следующих:

Спецификация объектаОписание

'normal' (по умолчанию)

Извлеките селекторы кода для пользовательского кода в нормальной симуляции, такие как пользовательский код, вызываемый из блока C Caller или диаграммы Stateflow.

'sil'

Извлеките селекторы кода для кода, сгенерированного в режиме Simulation-in-the-Loop (SIL), и селекторы кода для интерфейса кода верхней модели

'pil'

Извлеките селекторы кода для кода, сгенерированного в режиме Processor-in-the-Loop (PIL), и селекторы кода для интерфейса верхней части модели

'xil'

Если код SIL-режима существует, извлеките селекторы кода для кода, сгенерированного в режиме SIL, и извлеките селекторы кода для интерфейса верхней части модели; в противном случае извлеките селекторы кода для кода, сгенерированного в PIL-режиме, и извлеките селекторы кода для верхней части модели

'modelrefsil'

Извлеките селекторы кода для интерфейса кода модели-ссылки в режиме SIL

'modelrefpil'

Извлеките селекторы кода для интерфейса кода модели-ссылки в PIL-режиме

'modelrefxil'

Если код SIL-режима существует, извлеките селекторы кода для интерфейса модели-ссылки кода в режиме SIL, если модель находится в режиме SIL; в противном случае извлеките селекторы кода для интерфейса ссылочного кода модели в PIL-режиме

Выходные аргументы

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

Селекторы для модели или элемента кода, возвращенные как массив Selector объекты.

Примеры

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

В этом примере показано, как получить все селекторы для блока And, а затем добавить правило для обоснования или исключения селектора. Метрические селекторы могут быть только обоснованы.

Загрузите модель и установите настройки покрытия

modelName = 'slvnvdemo_covfilt';
load_system(modelName);
set_param(modelName,'CovEnable','on','CovMetricStructuralLevel','MCDC');

Сначала получите указатель на блок для блока And.

id = getSimulinkBlockHandle([modelName,'/Saturation']);

Получите селекторы с помощью указателя на блок.

sel = slcoverage.Selector.allSelectors(id)
sel = 

  1x10 heterogeneous Selector (BlockSelector, MetricSelector) array with properties:

    Description
    Type
    Id
    ConstructorCode

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

sel(6)
ans = 

  MetricSelector with properties:

     ObjectiveIndex: 2
       OutcomeIndex: 2
        Description: 'T outcome of input >= upper limit in Saturate block "Saturation"'
               Type: DecisionOutcome
                 Id: 'slvnvdemo_covfilt:5'
    ConstructorCode: 'slcoverage.MetricSelector(slcoverage.MetricSelectorType.DecisionOutcome, 'slvnvdemo_covfilt:5', 2, 2)'

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

rule = slcoverage.FilterRule(sel(6),'Expected result');
filt = slcoverage.Filter;
filt.addRule(rule);

Сохраните фильтр и сгенерируйте отчет о покрытии.

filt.save('metrfilter');
csim = cvsim(modelName);
csim.filter = 'metrfilter';
cvhtml('cov',csim,'-sRT=0');

В этом примере показано, как получить селектор по типу и описанию. В этом примере вы получаете все селекторы для ложных результатов блока And, тип которого ConditionOutcome.

Загрузите модель в память.

modelName = 'sldemo_lct_bus';
load_system(modelName);

Получите селекторы ложных результатов для блока And путем поиска описаний, которые включают F.

id = getSimulinkBlockHandle([modelName,'/slCounter/And']);
sel = slcoverage.Selector.allSelectors(id, ...
         'Type',slcoverage.MetricSelectorType.ConditionOutcome, ...
         'Description','F')
sel = 

  1x2 MetricSelector array with properties:

    ObjectiveIndex
    OutcomeIndex
    Description
    Type
    Id
    ConstructorCode

Проверьте код конструктора для двух выбранных элементов, которые были возвращены.

sel.ConstructorCode
ans =

    'slcoverage.MetricSelector(slcoverage.MetricSelectorType.ConditionOutcome, 'sldemo_lct_bus:23', 1, 2)'


ans =

    'slcoverage.MetricSelector(slcoverage.MetricSelectorType.ConditionOutcome, 'sldemo_lct_bus:23', 2, 2)'

Введенный в R2017b