Обработайте по шаблону для форматирования результатов анализа Model Advisor
Используйте ModelAdvisor.FormatTemplate
класс, чтобы отформатировать результат регистрации панели результата анализа Model Advisor для универсального стили среди проверок вы создаете. Можно отформатировать результаты анализа как таблицу или список.
obj = ModelAdvisor.FormatTemplate(
создает объект type
)ModelAdvisor.FormatTemplate
класс.
вектор символов, идентифицирующий тип формата шаблона, или список или таблица. type
Необходимо возвратить объект результата в Model Advisor, чтобы отобразить результат форматирования в панели результата анализа.
Примечание
Используйте ModelAdvisor.FormatTemplate
класс в коллбэках проверки.
addRow | Добавьте строку в таблицу |
setCheckText | Добавьте описание проверки, чтобы закончиться |
setColTitles | Добавьте заголовки столбцов в таблицу |
setInformation | Добавьте описание подпроверки, чтобы закончиться |
setListObj | Добавьте список гиперссылок на объекты модели |
setRecAction | Добавьте раздел Recommended Action и текст |
setRefLink | Добавьте раздел See Also и ссылки |
setSubBar | Добавьте линию между результатами подпроверки |
setSubResultStatus | Добавьте состояние в проверку или подпроверяйте результат |
setSubResultStatusText | Добавьте текст ниже состояния в результате |
setSubTitle | Добавьте заголовок для подрегистрации результата |
setTableInfo | Добавьте данные в таблицу |
setTableTitle | Добавьте заголовок на таблицу |
Следующий код создает два объекта шаблона, ft1
и ft2
, и использует их, чтобы отформатировать результат выполнения регистрации таблицы и списка. Результат идентифицирует блоки в модели. Графика в соответствии с кодом отображает вывод, как это появляется в Model Advisor когда передачи проверки и сбои.
function sl_customization(cm) % register custom checks cm.addModelAdvisorCheckFcn(@defineModelAdvisorChecks); % register custom factory group cm.addModelAdvisorTaskFcn(@defineModelAdvisorTasks); % ----------------------------- % defines Model Advisor Checks % ----------------------------- function defineModelAdvisorChecks % Define and register a sample check rec = ModelAdvisor.Check('mathworks.example.SampleStyleOne'); rec.Title = 'Sample check for Model Advisor using the ModelAdvisor.FormatTemplate'; setCallbackFcn(rec, @SampleStyleOneCallback,'None','StyleOne'); mdladvRoot = ModelAdvisor.Root; mdladvRoot.register(rec); % ----------------------------- % defines Model Advisor Tasks % ----------------------------- function defineModelAdvisorTasks mdladvRoot = ModelAdvisor.Root; % --- sample factory group rec = ModelAdvisor.FactoryGroup('com.mathworks.sample.factorygroup'); rec.DisplayName='My Group 1'; rec.Description='Demo Factory Group'; rec.addCheck('mathworks.example.SampleStyleOne'); mdladvRoot.publish(rec); % publish inside By Group list % ----------------------------- % Sample Check With Subchecks Callback Function % ----------------------------- function ResultDescription = SampleStyleOneCallback(system) mdladvObj = Simulink.ModelAdvisor.getModelAdvisor(system); % get object % Initialize variables ResultDescription={}; ResultStatus = false; % Default check status is 'Warning' mdladvObj.setCheckResultStatus(ResultStatus); % Create FormatTemplate object for first subcheck, specify table format ft1 = ModelAdvisor.FormatTemplate('TableTemplate'); % Add information describing the overall check setCheckText(ft1, ['Find and report all blocks in the model. '... '(setCheckText method - Description of what the check reviews)']); % Add information describing the subcheck setSubTitle(ft1, 'Table of Blocks (setSubTitle method - Title of the subcheck)'); setInformation(ft1, ['Find and report all blocks in a table. '... '(setInformation method - Description of what the subcheck reviews)']); % Add See Also section for references to standards setRefLink(ft1, {{'Standard 1 reference (setRefLink method)'}, {'Standard 2 reference (setRefLink method)'}}); % Add information to the table setTableTitle(ft1, {'Blocks in the Model (setTableTitle method)'}); setColTitles(ft1, {'Index (setColTitles method)', 'Block Name (setColTitles method)'}); % Perform the check actions allBlocks = find_system(system); if length(find_system(system)) == 1 % Add status for subcheck setSubResultStatus(ft1, 'Warn'); setSubResultStatusText(ft1, ['The model does not contain blocks. '... '(setSubResultStatusText method - Description of result status)']); setRecAction(ft1, {'Add blocks to the model. '... '(setRecAction method - Description of how to fix the problem)'}); ResultStatus = false; else % Add status for subcheck setSubResultStatus(ft1, 'Pass'); setSubResultStatusText(ft1, ['The model contains blocks. '... '(setSubResultStatusText method - Description of result status)']); for inx = 2 : length(allBlocks) % Add information to the table addRow(ft1, {inx-1,allBlocks(inx)}); end ResultStatus = true; end % Pass table template object for subcheck to Model Advisor ResultDescription{end+1} = ft1; % Create FormatTemplate object for second subcheck, specify list format ft2 = ModelAdvisor.FormatTemplate('ListTemplate'); % Add information describing the subcheck setSubTitle(ft2, 'List of Blocks (setSubTitle method - Title of the subcheck)'); setInformation(ft2, ['Find and report all blocks in a list. '... '(setInformation method - Description of what the subcheck reviews)']); % Add See Also section for references to standards setRefLink(ft2, {{'Standard 1 reference (setRefLink method)'}, {'Standard 2 reference (setRefLink method)'}}); % Last subcheck, suppress line setSubBar(ft2, false); % Perform the subcheck actions if length(find_system(system)) == 1 % Add status for subcheck setSubResultStatus(ft2, 'Warn'); setSubResultStatusText(ft2, ['The model does not contain blocks. '... '(setSubResultStatusText method - Description of result status)']); setRecAction(ft2, {'Add blocks to the model. '... '(setRecAction method - Description of how to fix the problem)'}); ResultStatus = false; else % Add status for subcheck setSubResultStatus(ft2, 'Pass'); setSubResultStatusText(ft2, ['The model contains blocks. '... '(setSubResultStatusText method - Description of result status)']); % Add information to the list setListObj(ft2, allBlocks); end % Pass list template object for the subcheck to Model Advisor ResultDescription{end+1} = ft2; % Set overall check status mdladvObj.setCheckResultStatus(ResultStatus);
Следующие графические дисплеи выход, как это появляется в Model Advisor, когда проверка передает.
Следующие графические дисплеи выход, как это появляется в Model Advisor, когда проверка перестала работать.
Когда вы задаете ModelAdvisor.Check
объект, для CallbackStyle
свойство, если вы задаете DetailStyle
, вы не должны использовать ModelAdvisor.FormatTemplate
API или другие API форматирования к результатам формата, которые появляются в отчете Model Advisor. DetailStyle
также позволяет вам просматривать результаты блоком, подсистемой или рекомендуемым действием.
Если форматирование по умолчанию не удовлетворяет ваши потребности, используйте один из других стилей функции обратного вызова и используйте ModelAdvisor.FormatTemplate
API или другие API форматирования. ModelAdvisor.FormatTemplate
класс обеспечивает универсальный стиль среди проверок, которые вы создаете.