ModelAdvisor. Класс ResultDetail

Пакет: ModelAdvisor

Задает объекты детали результата

Описание

В функции обратного вызова проверки объекты ModelAdvisor.ResultDetail создаются для каждого элемента модели, возвращенного API find_system(), таким как набор блоков, которые нарушают проверку.

Объекты ResultDetailObjs сохранены как свойство ResultDetails класса ModelAdvisor.Check.

Свойства

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

Обеспечивает информационное содержимое.

Типы данных: логический

Обеспечивает информационное содержимое и рекомендуемое сообщение действия для того, чтобы устранить проблемы.

Типы данных: логический

Задайте сообщение, которое описывает результат. Этот текст представлен в панели результата Model Advisor.

Типы данных: char

Задайте заголовок для результата. Этот текст представлен в панели результата Model Advisor.

Типы данных: char

Задайте сообщение, которое предоставляет дополнительную информацию о результате. Этот текст представлен в панели результата Model Advisor.

Типы данных: char

Задайте сообщение о состоянии для результата. Текст представлен в панели результата Model Advisor.

Типы данных: char

Задайте рекомендуемое сообщение действия для результата. Текст представлен в панели результата Model Advisor.

Типы данных: char

Примеры

Этот пример показывает детали результата, которые соответствуют выполнению проверки "Проверка, появляются ли имена блока ниже блоков" в модели slvnvdemo_mdladv в качестве примера. Чтобы рассмотреть определение проверки, откройте файл sl_customization.m из модели в качестве примера и смотрите пример кода для ModelAdvisor.Check('com.mathworks.sample.Check0').

Задайте набор объектов детали результата

Из модели slvnvdemo_mdladv в качестве примера откройте файл sl_customization.m. В функции обратного вызова проверки API find_system() возвращает элементы модели в system, которые соответствуют заданным критериям. В этом примере функция возвращает блоки, имя которых не появляется ниже блока (violationBlks).

% find all blocks whose name does not appear below blocks
violationBlks = find_system(system, 'Type','block',...
                           'NamePlacement','alternate',...
                           'ShowName', 'on');

ModelAdvisor.ResultDetail создает ResultDetailObjs для каждого элемента модели, возвращенного API find_system. Когда violationBlks пуст, набор ElementResults состоит из отдельного объекта. Пары Name,Value задают набор для ненарушенной проверки. Для этого типа набора метод Simulink.ModelAdvisor.setCheckResultStatus(true) указывает, что проверка не нарушена и отображает Passed на Model Advisor.

В этом примере кода API find_system не идентифицирует блоки, имя которых появляется ниже блока, поэтому ElementResults обеспечивает информационное содержимое только.

% Results when no blocks 
% violate the check
if isempty(violationBlks)
    ElementResults = ModelAdvisor.ResultDetail;
        ElementResults.IsInformer = true;
        ElementResults.Title = 'Identify blocks where the name is 
            not displayed below the block.';
        ElementResults.Information = 'Verifies that the name appears 
            below the block.';
        ElementResults.Description = 'Identify blocks where the name 
            is not displayed below the block.';
        ElementResults.Status = 'All blocks have names displayed 
            below the block.'; 
    mdladvObj.setCheckResultStatus(true);                

Этот пример показывает свойства ModelAdvisor.ResultDetail для ElementResults, когда проверка "Проверка, появляются ли имена блока ниже блоков", не нарушена.

 ElementResults = 
 ResultDetail with properties:
    IsInformer = 1
    Description = 'Identify blocks where the name is not displayed 
        below the block.'       
    Title = 'Check whether block names appear below blocks'
    Information = 'Verifies that the name appears below the block.'
    Status = 'All blocks have names displayed below the block.'
    

Когда API find_system возвращает список элементов модели, которые соответствуют заданным критериям, класс ModelAdvisor.ResultDetail создает объект ResultDetailObjs для каждого элемента в violationBlks. Пары Name,Value задают ElementResults как набор объектов, которые нарушают проверку. Для этого набора метод Simulink.ModelAdvisor.setCheckResultStatus(false) указывает, что проверка нарушена и отображает Warning или Failed на Model Advisor. Метод Simulink.ModelAdvisor.setActionEnable(true) включает способности устранить проблему нарушения проверки от Model Advisor.

В этом примере кода API find_system возвращает список блоков, имя которых появляется ниже блока. ElementResults включает каждый объект ResultDetailObjs, который нарушает проверку и предоставляет рекомендуемое сообщение действия для фиксации нарушения проверки.

% Create results when blocks violate the check
else
    ElementResults(1,numel(violationBlks))=ModelAdvisor.ResultDetail;
    for i=1:numel(ElementResults)
        ElementResults(i).setData(violationBlks{i});
        ElementResults.Title = 'Identify blocks where the name is not 
            displayed below the block.';
        ElementResults.Information = 'Verifies that the name appears 
            below the block.';
        ElementResults.Description = 'Identify blocks where the name 
            is not displayed below the block.';
        ElementResults.Status = 'The following blocks have names that 
            do not display below the blocks:';
        ElementResults.RecAction = 'Change the location such that the 
            block name is below the block.';
    end                
    mdladvObj.setCheckResultStatus(false);  
    mdladvObj.setActionEnable(true);          
 

Этот пример показывает свойства ModelAdvisor.ResultDetail для ElementResults, когда проверка "Проверка, появляются ли имена блока ниже блоков", нарушена.

ElementResults = 
ResultDetail with properties:
    IsInformer = 0;
    Description = 'Identify blocks where the name is not displayed 
        below the block.';        
    Title = 'Check whether block names appear below blocks';
    Information = 'Verifies that the name appears below the block.';
    Status = 'The following blocks have names that do not display 
        below the blocks:';
    RecAction = 'Change the location such that the block name is 
        below the block.'
    

Метод ModelAdvisor.Check.setResultDetails сопоставляет результаты с проверкой (CheckObj).

% Associate the results with the check
CheckObj.setResultDetails([CheckObj.ResultDetails, ElementResults]);   
 

После выполнения проверки можно просмотреть результаты в Model Advisor как набор, такой как рекомендуемым действием, блоком или подсистемой. Чтобы задать этот стиль отчета, задайте 'DetailStyle' как стиль коллбэка в методе ModelAdvisor.Check.setCallbackFcn.

% Define Model Advisor check "Check whether block names appear 
% below blocks".
rec = ModelAdvisor.Check('com.mathworks.sample.Check0');
rec.Title = 'Check whether block names appear below blocks 
    (recommended check style)';
rec.TitleTips = 'Example new style callback (recommended 
    check style)';
rec.setCallbackFcn(@SampleNewCheckStyleCallback,'None',
    'DetailStyle');

Введенный в R2018b