Пакет: slcoverage
Набор фильтров покрытия
Используйте объект slcoverage.Filter
класс, чтобы отфильтровать неудовлетворенные цели покрытия путем создания правил с помощью slcoverage.FilterRule
класс.
The slcoverage.Filter
класс является handle
класс.
создает filt
= slcoverage.Filter()slcoverage.Filter
объект.
создает filt
= slcoverage.Filter(filterFile
)slcoverage.Filter
объект, содержащий правила фильтрации, сохраненные в filterFile
.
filterFile
- Файл фильтраФайл фильтра в формате CVF, заданный как символьный массив имени пути к файлу или массив ячеек из символьных массивов. Вам не нужно включать расширение файла.
Пример: 'myfilt'
, 'filters\myfilt'
, {'myfilt1', 'myfilt2'}
addRule | Добавьте правило фильтрации покрытия в фильтр |
removeRule | Удалите правило из набора правил фильтра |
rules | Правила для фильтра |
setFilterName | Установите имя объекта фильтра покрытия |
filterName | Получите имя объекта фильтра покрытия |
setFilterDescription | Установите описание объекта фильтра покрытия |
filterDescription | Получите описание объекта фильтра покрытия |
save | Сохраните объект фильтра покрытия в файл фильтра покрытия |
В этом примере показано, как добавить правило к файлу фильтра покрытия.
Создайте объект фильтра и используйте BlockSelector
класс для создания BlockSelector
объект для блока Насыщения в slvnvdemo_covfilt
модель.
filt = slcoverage.Filter; blockSel = slcoverage.BlockSelector(slcoverage.BlockSelectorType.BlockInstance,... 'slvnvdemo_covfilt/Saturation');
Создайте правило для фильтрации блока Насыщения с помощью slcoverage.FilterRule
с селектором в качестве первого входа и обоснованием в качестве второго входа.
rule = slcoverage.FilterRule(blockSel,'Edge case');
Используйте addRule
метод slcoverage.Filter
класс, чтобы добавить правило к объекту фильтра.
addRule(filt,rule);
Сохраните фильтр с новым правилом в файл фильтра с помощью save
метод slcoverage.Filter
класс.
save(filt,'myFilterFile')
В этом примере показано, как создать объект фильтра и добавить правило для исключения подсистемы из анализа покрытия.
Откройте slvnvdemo_covfilt
модель. Использование SimulationInput
Объект для включения записи покрытия и определения параметров покрытия.
modelName = 'slvnvdemo_covfilt'; load_system(modelName) simIn = Simulink.SimulationInput(modelName); simIn = setModelParameter(simIn,'CovEnable','on'); simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC'); simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on'); simIn = setModelParameter(simIn,'CovSaveName','covData');
Симулируйте модель. Данные о покрытии хранятся в значении, предоставленном для CovSaveName
свойство.
simOut = sim(simIn); covData = simOut.covData;
Можно фильтровать блок при помощи slcoverage.BlockSelector
класс. Чтобы исключить подсистему config с возможностью переключения, используйте slcoverage.BlockSelectorType.SubsystemAllContent
как первый вход.
subsysSel = slcoverage.BlockSelector(... slcoverage.BlockSelectorType.SubsystemAllContent,... 'slvnvdemo_covfilt/Switchable config');
Создайте правило фильтра, передав в качестве входов селектор, обоснование и режим исключить фильтр.
rule = slcoverage.FilterRule(subsysSel,... 'Unused configuration',... slcoverage.FilterMode.Exclude);
Создайте slcoverage.Filter
и затем добавьте к нему правило.
filt = slcoverage.Filter; addRule(filt,rule);
Сохраните фильтр в файл с именем blockFilter.cvf
. Чтобы создать отчет, который использует этот фильтр покрытия, добавьте файл фильтра в качестве значения к filter
свойство covData
, и создать отчет под названием coverageData.html
использование covData
.
save(filt,'blockFilter') covData.filter = 'blockFilter'; cvhtml('coverageData',covData)
Если у вас есть несколько файлов фильтра, каждый из которых содержит свой собственный набор правил, можно применить их к набору результатов покрытия, создав массив ячеек из имен файлов фильтров или имен путей. В этом примере вы применяете два файла фильтра к одному cvdata
Объект а затем просмотрите отчет, чтобы увидеть, что фильтры применяются.
Загрузите slvnvdemo_covfilt
модель в память.
modelName = 'slvnvdemo_covfilt';
load_system(modelName)
Установите параметры покрытия при помощи Simulink.SimulationInput
объект и симуляция модели с помощью sim
.
simIn = Simulink.SimulationInput(modelName); simIn = setModelParameter(simIn,'CovEnable','on'); simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC'); simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on'); simIn = setModelParameter(simIn,'CovSaveName','covData'); simOut = sim(simIn);
Примените эти два фильтра к cvdata
объект путем назначения их свойству фильтра как массива ячеек.
covData.filter = {'filter_1','filter_2'}; cvhtml('twoFiltersCovData',covData);
Примененные фильтры покрытия можно увидеть в разделе Объектов Filtered from Coverage Analysis отчета о покрытии.
slcoverage.BlockSelector
| slcoverage.FilterRule
| slcoverage.MetricSelector
| slcoverage.SFcnSelector
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.