exponenta event banner

setData

Класс: ModelAdvisor.ResultDetail
Пакет: ModelAdvisor

Связать идентификатор Simulink с объектом ModelAdvisor.ResultDetail

Синтаксис

setData(ElementResults,violationBlks)

Описание

Для пользовательской проверки Model Advisor, setData(ElementResults,violationBlks) метод связывает идентификатор Simulink (SID) блока, нарушающего проверку, с ModelAdvisor.ResultDetail объект.

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

Используйте setResultDetails метод, чтобы связать результаты с ModelAdvisor.Check объект. ModelAdvisor.ResultDetail сохраняются как часть ResultDetails имущества ModelAdvisor.Check класс.

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

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

ModelAdvisor.ResultDetail объекты, соответствующие каждому блоку, который нарушает пользовательскую проверку Model Advisor

Массив дескрипторов для блоков, нарушающих проверку

Примеры

В этом примере показаны подробные данные результата, соответствующие выполнению проверки Проверьте, отображаются ли имена блоков под блоками в AdvisorCustomizationExample модель. Чтобы просмотреть файлы в этом примере, см. раздел Создание и развертывание пользовательской конфигурации Model Advisor.

Определение набора объектов детализации результатов

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

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

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

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

if isempty(violationBlks)
    ElementResults = ModelAdvisor.ResultDetail;
    ElementResults.IsInformer = true;
    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);                

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

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

else
    ElementResults(1,numel(violationBlks))=ModelAdvisor.ResultDetail;
    for i=1:numel(ElementResults)
        ElementResults(i).setData(violationBlks{i});  
        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.Check.setResultDetails метод связывает результаты с проверкой (CheckObj).

CheckObj.setResultDetails(ElementResults);   
 

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

% Create ModelAdvisor.Check object and set properties.
rec = ModelAdvisor.Check('com.mathworks.sample.detailStyle');
rec.Title = 'Check whether block names appear below blocks';  
rec.TitleTips = 'Check position of block names';
rec.setCallbackFcn(@DetailStyleCallback,'None','DetailStyle');
    

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