allSelectors

Класс: slcoverage. BlockSelector, slcoverage. CodeSelector, slcoverage. Селектор, 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Селекторное улучшение типа, заданное как один из slcoverage.CodeSelectorType slcoverage.BlockSelectorType, slcoverage.MetricSelectorType или значений slcoverage.SFcnSelectorType. Возможные значения:

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

    • 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.CodeSelectorType.File — Пользовательское имя файла кода C/C++.

    • slcoverage.CodeSelectorType.Function — Пользовательское имя функции C/C++ кода.

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

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

  • Метрические селекторные типы:

    • slcoverage.MetricSelectorType.ConditionOutcome выбирает метрики результата, связанные с входными параметрами блока.

    • slcoverage.MetricSelectorType.DecisionOutcome выбирает метрики результата, связанные, чтобы блокировать выходные параметры.

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

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

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

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

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

'sil'

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

'pil'

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

'xil'

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

'modelrefsil'

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

'modelrefpil'

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

'modelrefxil'

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

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

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

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

Примеры

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

Получите все селекторы для блока. Затем можно добавить правило исключить или выровнять по ширине селектор. (Можно только выровнять по ширине метрические селекторы.)

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

modelName = 'sldemo_lct_bus';
open_system(modelName);
set_param(modelName,'CovMetricSettings','dcme','RecordCoverage','on');
id = Simulink.ID.getSID('sldemo_lct_bus/slCounter/And');
sel = slcoverage.Selector.allSelectors(id)
s = 

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

    Description
    Type
    Id
    ConstructorCode

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

sel(6)
ans = 

  MetricSelector with properties:

     ObjectiveIndex: 2
       OutcomeIndex: 2
        Description: 'F outcome of input port 2 in Logic block "And"'
               Type: ConditionOutcome
                 Id: 'sldemo_lct_bus:23'
    ConstructorCode: 'slcoverage.MetricSelector(slcoverage.MetricSelectorType.ConditionOutcome,'sldemo_lct_bus:23',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);

Получите конкретный метрический селектор.

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

modelName = 'sldemo_lct_bus';
open_system(modelName);
set_param(modelName,'CovMetricSettings','dcme','RecordCoverage','on');

Получите селекторы условия для И блок, описание которого включает текст F outcome.

id = Simulink.ID.getSID('sldemo_lct_bus/slCounter/And');
s = slcoverage.Selector.allSelectors(id,...
  'Type',slcoverage.MetricSelectorType.ConditionOutcome,'Description','F outcome')
s = 

  1×2 MetricSelector array with properties:

    ObjectiveIndex
    OutcomeIndex
    Description
    Type
    Id
    ConstructorCode

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

s.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