Класс: ModelAdvisor.ResultDetail
Пакет: ModelAdvisor
Связать идентификатор Simulink с объектом ModelAdvisor.ResultDetail
setData(ElementResults,violationBlks)
Для пользовательской проверки Model Advisor, setData(
метод связывает Simulink Identifier (SID) блока, который нарушает проверку со ElementResults
,violationBlks
)ModelAdvisor.ResultDetail
объект.
Как часть функции обратного вызова проверки, вы создаете ModelAdvisor.ResultDetail
объекты для каждого блока, find_system()
API возвращается как нарушающий проверку.
Используйте setResultDetails
метод для связи результатов с ModelAdvisor.Check
объект. The ModelAdvisor.ResultDetail
объекты сохраняются как часть ResultDetails
свойство ModelAdvisor.Check
класс.
В этом примере показаны подробные данные результата, которые соответствуют выполнению проверки 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');