Шаблон для форматирования результатов анализа Model Advisor
Используйте ModelAdvisor.FormatTemplate
Класс для форматирования результатов проверки на панели результатов анализа Model Advisor для получения единого вида и ощущения среди созданных проверок. Можно форматировать результаты анализа как таблицу или список.
obj = ModelAdvisor.FormatTemplate(
создает объект type
)ModelAdvisor.FormatTemplate
класс.
- вектор символов, идентифицирующий тип формата шаблона, как в списке, так и в таблице. type
Необходимо вернуть объект результата в Model Advisor, чтобы отобразить форматированный результат на панели результатов анализа.
Примечание
Используйте ModelAdvisor.FormatTemplate
класс в чековых коллбэках.
addRow | Добавить строку в таблицу |
setCheckText | Добавьте описание проверки в результат |
setColTitles | Добавить заголовки столбцов в таблицу |
setInformation | Добавьте описание подчека к результату |
setListObj | Добавьте список гиперссылок к объектам модели |
setRecAction | Добавить рекомендуемый раздел действия и текст |
setRefLink | Добавить См. также раздел и ссылки |
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. The ModelAdvisor.FormatTemplate
класс обеспечивает равномерный внешний вид и ощущение среди созданных вами чеков.