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