exponenta event banner

mcdcinfo

Получение измененной информации о покрытии условий/решений из cvdata объект

Синтаксис

coverage = mcdcinfo(cvdo, object)
coverage = mcdcinfo(cvdo, object, mode)
coverage = mcdcinfo(cvdo, object, ignore_descendants)
[coverage, description] = mcdcinfo(cvdo, object)

Описание

coverage = mcdcinfo(cvdo, object) возвращает результаты измененного условия/покрытия принятия решения (MCDC) из cvdata объект cvdo для компонента модели, указанного object.

coverage = mcdcinfo(cvdo, object, mode) возвращает результаты измененного условия/покрытия принятия решения (MCDC) из cvdata объект cvdo для компонента модели, указанного object для режима моделирования mode.

coverage = mcdcinfo(cvdo, object, ignore_descendants) возвращает результаты MCDC для object, в зависимости от значения ignore_descendants.

[coverage, description] = mcdcinfo(cvdo, object) возвращает результаты MCDC и текстовые описания каждого условия/решения в object.

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

cvdo

cvdata объект

ignore_descendants

Логическое значение, указывающее, следует ли игнорировать охват объектов-потомков

1 - Игнорировать охват объектов-потомков
0 - Сбор покрытия для объектов-потомков

object

object аргумент указывает объект в модели Simulink ® или диаграмме Stateflow ®, который получает покрытие принятия решения. Допустимые значения дляobject включают следующее:

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

BlockPath

Полный путь к модели или блоку

BlockHandle

Маркер перемещения к модели или блоку

slObj

Дескриптор объекта API Simulink

sfID

Идентификатор потока состояний

sfObj

Дескриптор объекта API Stateflow

{BlockPath, sfID}

Массив ячеек с путем к диаграмме Stateflow или атомной вложенной диаграмме и идентификатором объекта, содержащегося в этой диаграмме или вложенной диаграмме

{BlockPath, sfObj}

Массив ячеек с путем к диаграмме Stateflow или атомной вложенной диаграмме и дескриптором API объекта Stateflow, содержащимся в этой диаграмме или вложенной диаграмме

{BlockHandle, sfID}

Массив ячеек с дескриптором диаграммы Stateflow или атомарной подчастки и идентификатором объекта, содержащегося в этой диаграмме или подчастке

При указании S-функционального блока допустимые значения для object включают следующее:

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

{BlockPath, fName}

Массив ячеек с путем к блоку S-Function и именем исходного файла.

{BlockHandle, fName}

Массив ячеек с дескриптором блока S-Function и именем исходного файла.

{BlockPath, fName, funName}

Массив ячеек с путем к блоку S-Function, именем исходного файла и именем функции.

{BlockHandle, fName, funName}

Массив ячеек с дескриптором блока S-Function, имя исходного файла и имя функции.

Для данных покрытия, собранных в режиме программного обеспечения в цикле (SIL) или в режиме моделирования процессора в цикле (PIL), допустимые значения для object включают следующее:

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

{fileName, funName}

Массив ячеек с именем исходного файла и именем функции.

{Model, fileName}

Массив ячеек с именем модели (или дескриптором модели) и именем исходного файла.

{Model, fileName, funName}

Массив ячеек с именем модели (или дескриптором модели), именем исходного файла и именем функции.

mode

mode аргумент определяет режим моделирования для покрытия. Допустимые значения для mode включают следующее:

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

'Normal'

Модель в режиме нормального моделирования.

'SIL' (or 'PIL')

Модель в режиме моделирования «Программное обеспечение в контуре» (SIL) или «Процессор в контуре» (PIL).

'ModelRefSIL' (or 'ModelRefPIL')

Ссылка на модель в режиме моделирования ПО в контуре (SIL) или процессора в контуре (PIL).

'ModelRefTopSIL' (or 'ModelRefTopPIL')

Ссылка на модель в режиме моделирования Software-in-the-Loop (SIL или Processor-in-the-Loop (PIL)) с интерфейсом кода, установленным на модель верхнего уровня.

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

coverage

Двухэлементный вектор вида [covered_outcomes total_outcomes]. coverage пуст, если cvdo не содержит измененных результатов покрытия условий/решений для object. Двумя элементами являются:

covered_outcomesКоличество удовлетворенных условий/результатов решения object
total_outcomesОбщее количество условий/результатов принятия решений для object

description

Массив структуры, содержащий следующие поля:

textОписание измеренного условия/решения
conditionСтруктурный массив, содержащий сведения об условиях/решениях для отдельных результатов условий
isFilteredФильтрация блока
filterRationaleОбоснование фильтрации
justifiedCoverageОбоснованные условия покрытия
isJustifiedВыровнен ли блок

Примеры

Сбор покрытия MCDC для slvnvdemo_cv_small_controller и определить процент покрытия MCDC, собранный для логического блока в подсистеме усиления:

mdl = 'slvnvdemo_cv_small_controller';
open_system(mdl)
%Create test specification object
testObj = cvtest(mdl)
%Enable MCDC coverage
testObj.settings.mcdc = 1;
%Simulate model
data = cvsim(testObj)
%Retrieve MCDC results for Logic block
blk_handle = get_param([mdl, '/Gain/Logic'], 'Handle');
cov = mcdcinfo(data, blk_handle)
%Percentage of MCDC outcomes covered
percent_cov = 100 * cov(1) / cov(2)

Альтернативы

Используйте настройки покрытия для сбора покрытия MCDC для модели:

  1. Откройте модель.

  2. В редакторе моделей выберите Параметры модели (Model Settings) на вкладке Моделирование (Modeling).

  3. На панели Покрытие диалогового окна Параметры конфигурации выберите Включить анализ покрытия.

  4. В разделе Показатели покрытия выберите MCDC в качестве структурного уровня покрытия.

  5. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Параметры конфигурации (Configuration Parameters) и сохранить изменения.

  6. Смоделировать модель, нажав кнопку Выполнить (Run), и просмотреть результаты.

Представлен в R2006b