Добавление статуса к результату проверки или подпроверки
setSubResultStatus(ft_obj, 'status')
setSubResultStatus( является необязательным методом, отображающим статус в результате. Этот метод используется для просмотра статуса проверки или подпроверки в результате. ft_obj, 'status') является дескриптором объекта шаблона. ft_obj - вектор символов, идентифицирующий состояние проверки:status
Pass: Проверка не выявила проблем. |
D-Pass: Зависит от параметра конфигурации. Проверка не выявила проблем. |
Warn: Проверка выявила проблемы. |
Fail: Проверка не выполняется. |
В этом примере показано, как создать функцию обратного вызова для пользовательской проверки, которая находит и сообщает параметры оптимизации. Проверка состоит из двух подчек. В первом рассматривается настройка оптимизации сокращения блоков, а во втором - настройка оптимизации выполнения условного входного ответвления.
Проверка с подчеками включает в результаты следующие элементы:
Описание общей проверки.
Заголовок для подконтроля.
Описание того, что просматривается подпроверкой.
Ссылки на стандарты, если применимо.
Статус подконтроля.
Описание статуса.
Результаты для подконтроля.
Рекомендуемые действия, выполняемые при невыполнении проверки.
Линия между результатами подконтроля.
% Sample Check 3 Callback Function: Check with Subchecks and Actions % Find and report optimization settings function ResultDescription = OptmizationSettingCallback(system) % Initialize variables system =getfullname(system); mdladvObj = Simulink.ModelAdvisor.getModelAdvisor(system); mdladvObj.setCheckResultStatus(false); % Default check status is 'Warning' ResultDescription = {}; % Format results in a list using Model Advisor Result Template API % Create a list template object for first subcheck ft1 = ModelAdvisor.FormatTemplate('ListTemplate'); % Description of check in results setCheckText(ft1,'Check optimization settings'); % Title and description of first subcheck setSubTitle(ft1,'Verify Block reduction optimization setting'); setInformation(ft1,['Check to confirm that the Block reduction ' ... 'check box is cleared.']); % Add See Also section with references to applicable standards docLinks{1} = {['Reference DO331 Section MB.6.3.4.e - Source code ' ... 'is traceable to low-level requirements']}; % Review 'Block reduction' optimization setRefLink(ft1,docLinks); if strcmp(get_param(system,'BlockReduction'),'off') % 'Block reduction' is cleared % Set subresult status to 'Pass' and display text describing the status setSubResultStatus(ft1,'Pass'); setSubResultStatusText(ft1,['The ''Block reduction'' ' ... 'check box is cleared']); ResultStatus = true; else % 'Block reduction' is selected % Set subresult status to 'Warning' and display text describing the status setSubResultStatus(ft1,'Warn'); setSubResultStatusText(ft1,['The Block reduction ' ... 'check box is selected.']); setRecAction(ft1,['Clear the ''Optimization > Block reduction''' ... ' check box in the Configuration Parameters dialog box.']); ResultStatus = false; end ResultDescription{end+1} = ft1; % Title and description of second subcheck ft2 = ModelAdvisor.FormatTemplate('ListTemplate'); setSubTitle(ft2,'Verify Conditional input branch execution setting'); setInformation(ft2,['Check to confirm that the ''Conditional input branch ' ... 'execution'' check box is cleared.']) % Add See Also section and references to applicable standards docLinks{1} = {['Reference DO331 Section MB.6.4.4.2 - Test coverage ' ... 'of software structure is achieved']}; setRefLink(ft2,docLinks); % Last subcheck, supress line setSubBar(ft2,0); % Check status of the 'Conditional input branch execution' check box if strcmp(get_param(system,'ConditionallyExecuteInputs'),'off') % The 'Conditional input branch execution' check box is cleared % Set subresult status to 'Pass' and display text describing the status setSubResultStatus(ft2,'Pass'); setSubResultStatusText(ft2,['The ''Conditional input branch ' ... 'execution'' check box is cleared.']); else % 'Conditional input branch execution' is selected % Set subresult status to 'Warning' and display text describing the status setSubResultStatus(ft2,'Warn'); setSubResultStatusText(ft2,['The ''Conditional input branch ' ... 'execution'' check box is selected.']); setRecAction(ft2,['Clear the ''Optimization > Conditional input branch ' ... 'execution'' check box in the Configuration Parameters dialog box.']); ResultStatus = false; end ResultDescription{end+1} = ft2; % Pass list template object to Model Advisor mdladvObj.setCheckResultStatus(ResultStatus); % Set overall check status % Enable Modify Settings button when check fails mdladvObj.setActionEnable(~ResultStatus);