Отчет о функции MATLAB

Report API предоставляет несколько способов отчета о блоках Simulink MATLAB Function и Stateflow® MATLAB® функций. Чтобы сообщить подробную информацию, используйте slreportgen.report.MATLABFunction репортер. Этот репортер сообщает свойства, аргументы, код функции, символы функции и вспомогательные функции.

Другие способы отчета о блоках MATLAB Function или функциях Stateflow MATLAB - это использование SimulinkObjectProperties или StateflowObjectProperties репортер, соответственно. Эти репортеры, однако, не обеспечивают форматирование кода функции или не сообщают о символах функции, вспомогательных функциях или аргументах. Используйте эти репортеры, если вам нужна только информация о свойствах.

Report API предоставляет искатели для нахождения блоков и элементов Stateflow, включая функции MATLAB, по всей модели или графику. Эти искатели являются BlockFinder, DiagramElementFinder, и StateflowDiagramElementFinder.

Эти примеры показывают, как использовать finder в программе генератора отчетов. Для случаев, когда вы знаете указатель или путь к функции MATLAB, вам не нужно использовать finder (см slreportgen.report.MATLABFunction для примеров).

Поиск и отчет по блокам MATLAB function

Используйте Report API finders и slreportgen.report.MATLABFunction репортер, чтобы сообщить о MATLAB Function блоках.

Используйте BlockFinder для поиска всех блоков типа SubSystem, которая включает в себя MATLAB Function блоков. Если вы ищете все типы блоков, BlockFinder может занять больше времени, чтобы вернуть результаты, чем если вы ограничиваете поиск типами блоков SubSystem.

blkfinder = slreportgen.finder.BlockFinder(model_name);
blkfinder.BlockTypes = "SubSystem";
blks = find(blkfinder);

Затем выполните цикл через возвращенные блоки SubSystem, чтобы проверить, является ли блок блоком MATLAB Function. Создайте MATLABFunction репортер для каждого блока MATLAB Function, установите требуемые свойства и добавьте каждый результат к отчету.

for i=1:length(blks)
   block = blks(i).Object;
   if slreportgen.utils.isMATLABFunction(block)
      rptr = MATLABFunction(block);
      rptr.IncludeArgumentProperties = true;
      add(rpt,rptr);
   end
end

Этот код является примером программы генератора отчетов, которая находит и сообщает о MATLAB Function блоках.

import slreportgen.report.*
import slreportgen.finder.*

model_name = 'sldemo_eml_galaxy';
load_system(model_name);
rpt = slreportgen.report.Report;

blkfinder = BlockFinder(model_name);
blkfinder.BlockTypes = "SubSystem";
blks = find(blkfinder);

for i=1:length(blks)
   block = blks(i).Object;
   if slreportgen.utils.isMATLABFunction(block)
      rptr = MATLABFunction(block);
      rptr.IncludeArgumentProperties = true;
      add(rpt,rptr);
   end
end

close(rpt);
close_system(model_name);
rptview(rpt);

Это изображение показывает раздел выхода отчета для одного из Блоков MATLAB function. В ней показаны таблица свойств блоков, сводная таблица для одного из аргументов и фрагмент скрипта функции. В фактическом выходе все таблицы аргументов появляются перед скриптом функции.

Поиск и отчет о функциях Stateflow MATLAB

Используйте StateflowDiagramElementFinder и slreportgen.report.MATLABFunction reporter, чтобы найти и сообщить о функциях Stateflow MATLAB.

elemfinder = StateflowDiagramElementFinder(chart_name);
elemfinder.Types = "emfunction";
elems = find(elemfinder);

Затем выполните цикл через возвращенные функции MATLAB. Создайте MATLABFunction репортер для каждой функции MATLAB и добавьте ее в отчет.

for i = 1:length(elems)
   rptr = MATLABFunction(elems(i).Object);
   add(rpt,rptr);
end

Этот код является примером программы генератора отчетов, которая находит и сообщает о функциях MATLAB в диаграммах Stateflow.

import slreportgen.report.*
import slreportgen.finder.*

model_name = 'sf_server';
openExample(model_name);
chart_name = 'sf_server/transmitter';
rpt = slreportgen.report.Report;

elemfinder = StateflowDiagramElementFinder(chart_name);
elemfinder.Types = "emfunction";
elems = find(elemfinder);

for i = 1:length(elems)
   rptr = MATLABFunction(elems(i).Object);
   add(rpt,rptr);
end

close(rpt);
close_system(model_name);
rptview(rpt);

Это изображение показывает раздел выхода отчета для одного из Блоков MATLAB function. Он показывает таблицу свойств объекта и фрагмент скрипта функции.

Настройка Функции MATLAB Reporter Выхода

Вы можете настроить выход Функции MATLAB репортера так же, как вы настраиваете любой отчет или репортер:

  • Использование классов DOM - Задайте форматы, использующие классы DOM, такие как mlreportgen.dom.Paragraph, и использовать их в своей программе. Для примера этот код устанавливает внешний вид скрипта функции.

    rptr = slreportgen.report.MATLABFunction;
    paraScript = mlreportgen.dom.Paragraph;
    paraScript.FontFamilyName = 'Arial';
    paraScript.FontSize = '12pt';
    paraScript.Color = 'blue';
    rptr.FunctionScript = paraScript;

  • Отредактировать копию шаблона по умолчанию - преимущество сохранения индивидуальных настроек в новом шаблоне состоит в том, что можно легко повторно использовать эти индивидуальные настройки с помощью этого шаблона для другой программы генератора отчетов Шаблон и таблицы стилей для MATLABFunction репортер расположены в matlab\toolbox\shared\slreportgen\rpt\rpt\+slreportgen\+report\@MATLABFunction\resources\templates папка.

    В этом примере показаны шаги для копирования и редактирования MATLABFunction шаблон репортажного html.

    1. Создайте копию шаблона HTML по умолчанию. В этом примере пакет шаблона сохраняется следующим myHTMLTemplate.htmtx в текущей рабочей папке.

      mfunction = slreportgen.report.MATLABFunction;
      mfunction.createTemplate('myHTMLTemplate','html');

    2. Разархивируйте пакет шаблона. Пакет разархивированного шаблона представляет собой папку с файлами документов, таблиц стилей и изображений. В этом примере папка пакета шаблона сохранена в текущей рабочей папке.

      unzipTemplate('myHTMLTemplate.htmtx');
    3. Из stylesheets папка, откройте root.css файл в текстовом редакторе. The root.css файл содержит стили по умолчанию для MATLABFunction репортер. Начало файла и первый стиль:

      /******************************************************************

      * MATLABFunction Reporter

      ******************************************************************/

      / * Стиль по умолчанию для заголовка скрипта функции MATLAB */

      .MATLABFunctionFunctionScriptTitle {

      font-family: 'Noto Sans', 'Noto Sans CJK JP', 'Noto Sans CJK SC', 'Noto Sans CJK KR';

      толщина шрифта: полужирный;

      margin-top: 10pt;

      цвет: черный;

      белое пространство: pre;

      }

    4. Отредактируйте стили по мере необходимости. В этом примере верхнее поле над заголовком скрипта функции увеличивается до 20 точек, а цвет заголовка - до синего.

      /******************************************************************

      MATLABFunction Reporter

      ******************************************************************/

      / * Стиль по умолчанию для заголовка скрипта функции MATLAB */

      .MATLABFunctionFunctionScriptTitle {

      font-family: 'Noto Sans', 'Noto Sans CJK JP', 'Noto Sans CJK SC', 'Noto Sans CJK KR';

      толщина шрифта: полужирный;

      margin-top: 12pt;

      цвет: синий;

      белое пространство: pre;

      }

    5. Сохраните файл.

    6. Заархивируйте папку шаблона в пакет шаблона. В данном примере пакет шаблона myHTMLTemplate.htmtx.

      zipTemplate('myHTMLTemplate');

    7. В программе генератора отчетов для использования сохраненного шаблона укажите источник шаблона.

      mfunction.TemplateSrc = 'myHTMLTemplate';

    Дополнительные сведения см. в разделе Шаблоны для программ отчетов DOM API.

См. также

| | | | | |