setData

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

Сопоставьте идентификатор Simulink с ModelAdvisor.ResultDetail object

Синтаксис

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

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

Примеры

Этот пример показывает детали результата, которые соответствуют выполнению проверки Check whether block names appear below blocks в 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 на 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. Name,Value пары задают ElementResults как набор объектов, которые нарушают проверку. Для этого набора, Simulink.ModelAdvisor.setCheckResultStatus(false) метод указывает, что проверка нарушена и отображает Warning или Failed на Model Advisor. Simulink.ModelAdvisor.setActionEnable(true) метод включает способности устранить проблему нарушения проверки от Model Advisor.

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

else
    for i=1:numel(violationBlks)
	 ElementResults(1,i) = ModelAdvisor.ResultDetail;
    end
    for i=1:numel(ElementResults)
        ModelAdvisor.ResultDetail.setData(ElementResults(i), 'SID',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