ModelAdvisor. Класс FormatTemplate

Пакет: ModelAdvisor
Суперклассы:

Обработайте по шаблону для форматирования результатов анализа Model Advisor

Описание

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

  • Таблица

  • Список

Конструкция

ModelAdvisor. FormatTemplateСоздайте объект шаблона для форматирования результатов анализа Model Advisor

Методы

addRowДобавьте строку в таблицу
setCheckTextДобавьте описание проверки, чтобы закончиться
setColTitlesДобавьте заголовки столбцов в таблицу
setInformationДобавьте описание подпроверки, чтобы закончиться
setListObjДобавьте список гиперссылок на объекты модели
setRecActionДобавьте раздел Recommended Action и текст
setRefLinkДобавьте раздел See Also и ссылки
setSubBarДобавьте строку между результатами подпроверки
setSubResultStatusДобавьте состояние в проверку или подпроверяйте результат
setSubResultStatusTextДобавьте текст ниже состояния в результате
setSubTitleДобавьте заголовок для подрегистрации результата
setTableInfoДобавьте данные в таблицу
setTableTitleДобавьте заголовок на таблицу

Копировать семантику

Указатель. Чтобы изучить, как это влияет на ваше использование класса, смотрите Копирование Объектов (MATLAB) в документации MATLAB® Programming Fundamentals.

Примеры

Следующий код создает два объекта шаблона, 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, когда проверка перестала работать.

Альтернативы

Используйте API Форматирования Model Advisor, чтобы отформатировать результаты контрольного анализа. Однако используйте класс ModelAdvisor.FormatTemplate для универсального стили среди проверок, которые вы создаете.