Вы можете использовать Метрическую Инструментальную панель и метрические API, чтобы получить соответствие и выпускаете метрические данные по вашей настройке Model Advisor. Чтобы настроить вашу настройку Model Advisor, смотрите, Организуют Проверки и Папки Используя Model Advisor Configuration Editor. Можно также использовать существующую группу проверки, такую как проверки MISRA. После того, как вы настроили свою настройку Model Advisor, выполните эти шаги, чтобы задать группы проверки, для которых вы хотите получить соответствие, и выпускает метрические данные:
Откройте настройку по умолчанию:
config=slmetric.config.Configuration.open()
Задайте метрический ID семейства, который вы сопоставляете с теми группами проверки:
famParamID = 'ModelAdvisorStandard';
Создайте массив ячеек, состоящий из идентификаторов Check Group, которые соответствуют группам проверки. Получите ID Check Group путем открытия Model Advisor Configuration Editor и выбора папки, которая содержит группу проверок. Папка содержит параметр Check Group ID.
values = {'maab', 'hisl_do178', '_SYSTEM_By Task_misra_c'};
Предыдущий массив ячеек задает MAAB, Высокую Целостность и группы проверки MISRA. Значения maab
и hisl_do178
соответствуют подмножеству MAAB и Системных проверок Высокой Целостности. Чтобы включать все проверки, задайте значение для параметра Check Group ID от Model Advisor Configuration Editor.
Чтобы настроить настройку, передайте массив ячеек values
в метод setMetricFamilyParameterValues
.
setMetricFamilyParameterValues(config, famParamID, values);
Укажите High Integrity Compliance и виджеты High Integrity Check Issues группе проверки MISRA. Чтобы начаться, откройте настройку по умолчанию для Метрического размещения Инструментальной панели.
conf = slmetric.dashboard.Configuration.open();
Получите объект slmetric.dashboard.Layout
из объекта slmetric.dashboard.Configuration
conf
.
layout = getDashboardLayout(conf);
Получите объекты виджета, которые находятся в объекте размещения.
layoutWidget=getWidgets(layout);
Получите группу соответствия из размещения. Эта группа содержит два контейнера. Первый контейнер содержит Высокую Целостность и виджеты Проблем Соответствия и Проверки MAAB. Удалите виджет High Integrity Compliance.
complianceGroup = layoutWidget(3);
complianceContainers = getWidgets(complianceGroup);
complianceContainerWidgets = getWidgets(complianceContainers(1));
complianceContainers(1).removeWidget(complianceContainerWidgets(1));
setMetricIDs(complianceContainerWidgets(1),...
({'mathworks.metrics.ModelAdvisorCompliance._SYSTEM_By Task_misra_c'}));
complianceContainerWidgets(1).Labels={'MISRA'};
Добавьте пользовательский виджет для визуализации метрик проблем проверки MISRA к
объекту complianceContainers
slmetric.dashboard.Container
.
misraWidget = complianceContainers(1).addWidget('Custom', 1);
misraWidget.Title=('MISRA');
misraWidget.VisualizationType = 'RadialGauge';
misraWidget.setMetricIDs('mathworks.metrics.ModelAdvisorCheckCompliance._SYSTEM_By Task_misra_c');
misraWidget.setWidths(slmetric.dashboard.Width.Medium);
Сохраните объекты настройки. Эти команды сериализируют информацию API к XML-файлам.
save(config,'FileName','MetricConfig.xml');
save(conf,'Filename','DashboardConfig.xml');
Установите активные настройки.
slmetric.config.setActiveConfiguration(fullfile(pwd, 'MetricConfig.xml'));
slmetric.dashboard.setActiveConfiguration(fullfile(pwd, 'DashboardConfig.xml'));
Для модели откройте Метрическую Инструментальную панель.
Нажмите кнопку All Metrics и запустите все метрики.