exponenta event banner

allSelectors

Класс: slcoverage. BlockSelector, slcoverage. CodeSelector, 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 - Диаграмма 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.CodeSelectorType.File - Имя файла пользовательского кода C или C++.

    • slcoverage.CodeSelectorType.Function - Имя пользовательской функции кода C или C++.

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

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

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

    • slcoverage.CodeSelectorType.ConditionOutcome - Результат пользовательского условия кода C или 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-функционального блока.

    • slcoverage.SFcnSelectorType.SFcnInstanceCppDecision выбирает результат решения S-функционального блока.

Текст описания, соответствующий селектору, который требуется вернуть, указанный как символьный вектор или строка. Например, если требуется вернуть только селекторы, содержащие текст F outcome в описании используйте следующий синтаксис:

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

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

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

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

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

'sil'

Извлечение селекторов кода для кода, сгенерированного в режиме моделирования в цикле (SIL), и селекторов кода для интерфейса кода верхней модели

'pil'

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

'xil'

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

'modelrefsil'

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

'modelrefpil'

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

'modelrefxil'

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

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

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

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

Примеры

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

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

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

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

Сначала получите дескриптор блока для блока И.

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');

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

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

modelName = 'sldemo_lct_bus';
load_system(modelName);

Получить селекторы ложных условий результата для блока И путем поиска описаний, включающих 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