exponenta event banner

ModelAdvisor. FormatTemplate

Шаблон для форматирования результатов анализа Model Advisor

Описание

Используйте ModelAdvisor.FormatTemplate для форматирования результата проверки на панели результатов анализа в Model Advisor для однородного вида и ощущения среди создаваемых проверок. Результаты анализа можно отформатировать в виде таблицы или списка.

Создание

Описание

obj = ModelAdvisor.FormatTemplate(type) создает объект ModelAdvisor.FormatTemplate класс. type - символьный вектор, определяющий тип формата шаблона - список или таблицу.

Чтобы отобразить отформатированный результат на панели результатов анализа, необходимо вернуть объект результата в мастер модели.

Примечание

Используйте ModelAdvisor.FormatTemplate класс в контрольных обратных вызовах.

Входные аргументы

развернуть все

Тип 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 форматирования. ModelAdvisor.FormatTemplate класс обеспечивает единообразный внешний вид и ощущение среди создаваемых проверок.

Представлен в R2009a