pslinkfun

Управляйте анализом модели в командной строке

Синтаксис

pslinkfun('annotations','type',typeValue,'kind',kindValue,Name,Value)
pslinkfun('openresults',systemName)
pslinkfun('settemplate',psprjFile)
prjTemplate = pslinkfun('gettemplate')
pslinkfun('advancedoptions')
pslinkfun('enablebacktomodel')
pslinkfun('help')
pslinkfun('metrics')
pslinkfun('jobmonitor')
pslinkfun('stop')

Описание

пример

pslinkfun('annotations','type',typeValue,'kind',kindValue,Name,Value) добавляет аннотация типа typeValue и добрый kindValue к выбранному блоку в модели. Можно задать различный блок с помощью аргумента пары Name,Value. Можно также добавить примечания о классификации серьезности, рабочем состоянии или других комментариях с помощью пар Name,Value.

В сгенерированном коде, сопоставленном с аннотируемым блоком, Polyspace® добавляет комментарии к коду до и после строк кода. Polyspace читает эти комментарии и отмечает результаты Polyspace заданного kind с аннотируемой информацией.

Ограничения синтаксиса:

  • У вас может быть только одна аннотация на блок. Если блок производит и нарушение правила и ошибку, можно аннотировать только один тип.

  • Даже при том, что вы применяете аннотации к отдельным блокам, осциллограф аннотации может быть больше. Сгенерированный код от одного блока может наложиться с другим, заставив аннотацию также наложиться.

    Например, рассмотрите эту модель. Первый блок суммирования имеет аннотацию Polyspace, но второе не делает.

    Однако связанный сгенерированный код добавляет все три входных параметров в одной строке кода.

    /* polyspace:begin<RTE:OVFL:Medium:To Fix>*/
    annotate_y.Out1=(annotate_u.In1+annotate_U.In2)+annotate_U.In3;
    /* polyspace:end<RTE:OVFL:Medium:To Fix> */
    Поэтому аннотация выравнивает по ширине оба суммирования.

пример

pslinkfun('openresults',systemName) открывает результаты Polyspace, сопоставленные с моделью или подсистемой systemName в среде Polyspace.

пример

pslinkfun('settemplate',psprjFile) устанавливает конфигурационный файл для новых верификаций.

пример

prjTemplate = pslinkfun('gettemplate') возвращает конфигурационный файл шаблона, используемый для новых исследований.

пример

pslinkfun('advancedoptions') открывает усовершенствованное окно настроек верификации, чтобы сконфигурировать дополнительные опции для текущей модели.

пример

pslinkfun('enablebacktomodel') включает назад к особенности модели из плагина Simulink®. Если ваши результаты Polyspace правильно не соединяются, чтобы отступить к блокам модели, запускают эту команду.

пример

pslinkfun('help') открывает документацию Polyspace в отдельном окне. Используйте эту опцию для только pre-R2013b версии MATLAB®.

пример

pslinkfun('metrics') открывает интерфейс Polyspace Metrics.

пример

pslinkfun('jobmonitor') открывает Монитор Задания Polyspace, чтобы отобразить удаленные верификации в очереди.

пример

pslinkfun('stop') уничтожает анализ кода, который в настоящее время запускается. Используйте эту опцию для локальных исследований только.

Примечание

Прежде чем вы запустите Polyspace из MATLAB, необходимо соединить Polyspace и установки MATLAB. Смотрите Интегрируют Polyspace с MATLAB и Simulink.

Примеры

свернуть все

Используйте функцию аннотации Polyspace, чтобы аннотировать блок и видеть аннотацию в результатах анализа.

В модели WhereAreTheErrors в качестве примера добавьте аннотацию в блок switch для нарушений правила 13.7 MISRA® C с комментарием, серьезностью и состоянием.

model = 'WhereAreTheErrors';
open(model)
pslinkfun('annotations','type','Misra-C', 'kind', '13.7','block',...
	'WhereAreTheErrors/Switch1','status','to fix','comment','must fix')

В открытой модели вы видите аннотацию Polyspace, добавленную к блоку switch.

Сгенерируйте код для модели и запустите анализ. После того, как анализ закончен, откройте результаты в среде Polyspace:

slbuild(model)
opts = pslinkoptions(model);
opts.VerificationMode = 'BugFinder';
opts.VerificationSettings = 'PrjConfigAndMisra';
pslinkrun(model,opts)
pslinkfun('openresults',model)
Пять нарушений правила MISRA C 13.7 аннотируются информацией, которую вы добавили в блок switch. Аннотации появляются в столбцах Comment и Status.

Измените усовершенствованные опции Polyspace и установите новую настройку как шаблон.

Загрузите модель WhereAreTheErrors и откройте окно расширенных настроек.

model = 'WhereAreTheErrors';
load_system(model)
pslinkfun('advancedoptions')

В панели Run Settings выберите опции Run Bug Finder analysis on a remote cluster и Upload results to Polyspace Metrics.

Установите шаблон конфигурации для новых исследований Polyspace иметь эти опции.

pslinkfun('settemplate',fullfile(cd,'pslink_config',...
    'WhereAreTheErrors_config.psprj'))

Просмотрите текущий шаблон Polyspace.

template = pslinkfun('gettemplate')
template = 
C:\ModelLinkDemo\pslink_config\WhereAreTheErrors_config.psprj

Запустите удаленный анализ, просмотрите анализ в очереди и рассмотрите метрики.

Прежде, чем выполнить этот пример, проверяйте, что ваша настройка Polyspace настраивается для удаленного анализа и Метрик Polyspace.

Создайте модель WhereAreTheErrors, создайте объект опций Polyspace, установите режим верификации и откройте окно расширенных настроек.

model = 'WhereAreTheErrors';
load_system(model)
slbuild(model)
opts = pslinkoptions(model);
opts.VerificationMode = 'BugFinder';
pslinkfun('advancedoptions')

В панели Run Settings выберите опции Run Bug Finder analysis on a remote cluster и Upload results to Polyspace Metrics.

Запустите Polyspace, затем откройте Монитор Задания, чтобы контролировать ваше удаленное задание.

pslinkrun(model,opts)
pslinkfun('jobmonitor')

После того, как ваше задание закончено, откройте метрический сервер, чтобы видеть ваше задание в репозитории.

pslinkfun('metrics')

Входные параметры

свернуть все

Тип результата, которым можно аннотировать блок, заданный как:

  • 'DEFECT' для дефектов.

  • 'MISRA-C' для MISRA C®, кодирующего нарушения правила (Только код С).

  • 'MISRA-AC-AGC' для MISRA C кодирующий нарушения правила (Только код С).

  • 'MISRA-CPP' для C++ MISRA, кодирующего нарушения правила (Только код С++).

  • 'JSF' для JSF® C ++, кодирующего нарушения правила (Только код С++).

Пример: 'type','MISRA-C'

Определенная проверка или кодирующий правило, заданное акронимом проверки или кодирования, управляет номером. Для определенного входа для каждого типа аннотации см. следующую таблицу.

Значение typeЗначения kind
'DEFECT'

Используйте сокращение, сопоставленное с типом дефекта, который вы хотите аннотировать. Например, 'int_ovfl' – Целочисленное переполнение.

Для списка возможных проверок см.: Результаты Polyspace Bug Finder.

'MISRA-C'

Используйте номер правила, который вы хотите аннотировать. Например, '2.2'.

Для списка поддерживаемого MISRA C правила и их числа, смотрите MISRA C:2004 и Правила Кодирования AGC AC MISRA.

'MISRA-AC-AGC'

Используйте номер правила, который вы хотите аннотировать. Например, '2.2'.

Для списка поддерживаемого MISRA C правила и их числа, смотрите MISRA C:2004 и Правила Кодирования AGC AC MISRA.

'MISRA-CPP'

Используйте номер правила, который вы хотите аннотировать. Например, '0-1-1'.

Для списка поддерживаемых правил C++ MISRA и их чисел, см. MISRA C ++:2008 Правил.

'JSF'

Используйте номер правила, который вы хотите аннотировать. Например, '3'.

Для списка поддерживаемых правил C++ JSF и их чисел, см., что C++ JSF Кодирует Правила.

Пример: pslinkfun('annotations','type','MISRA-CPP','kind','1-2-3')

Типы данных: char

Модель Simulink задана именем подсистемы или системой.

Пример: pslinkfun('openresults','WhereAreTheErrors')

Файл проекта Polyspace, заданный как абсолютный путь к файлу проекта .psprj. Если psprjFile пуст, Polyspace использует стандартный файл шаблона Polyspace. Новые проекты Polyspace запускаются с этой настройки проекта.

Пример: pslinkfun('settemplate', fullfile(polyspaceroot, 'polyspace', 'examples', 'cxx', 'Bug_Finder_Example', 'Bug_Finder_Example.bf.psprj'));

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'block','MyModel\Sum', 'status','to fix'

Блок вы хотите аннотировать заданный именем блока. Если вы не используете эту опцию, блок, возвращенный функциональным gcb, аннотируется.

Пример: 'block','MyModel\Sum'

Серьезность проверки, заданной как high, medium, low или unset.

Пример: 'class','high'

Рабочее состояние проверки, заданной как unreviewed, to investigate, to fix, justified, no action planned, not a defect или other.

Пример: 'status','no action planned'

Дополнительные комментарии, заданные как вектор символов. Комментарии предоставляют больше информации о том, почему результаты выравниваются по ширине.

Пример: 'comment','defensive code'

Смотрите также

| |

Введенный в R2014a