setData

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

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

Синтаксис

setData(ElementResults,violationBlks)

Описание

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

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

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

Входные параметры

расширить все

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

Массив указателей на блоки, которые нарушают проверку

Примеры

В этом примере показаны подробные данные результата, которые соответствуют выполнению проверки Check whether block names appear below blocks в AdvisorCustomizationExample модель. Чтобы просмотреть файлы в этом примере, смотрите Создание и развертывание Пользовательского строения Model Advisor.

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

The 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 набор состоит из одного объекта. The Name,Value пары определяют набор для ненасыщенной проверки. Для этого типа набора, Simulink.ModelAdvisor.setCheckResultStatus(true) метод задает, что проверка не нарушена, и отображает Passed на Model Advisor.

В этой выборке кода, 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. The Name,Value пары задают ElementResults как набор объектов, нарушающих проверку. Для этого набора, Simulink.ModelAdvisor.setCheckResultStatus(false) метод задает, что проверка нарушена, и отображает Warning или Failed на Model Advisor. The 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);          
 

The 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