exponenta event banner

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

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

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

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

В этих примерах показано, как использовать поисковик в программе генератора отчетов. Для случаев, когда известен дескриптор или путь к функции MATLAB, нет необходимости использовать поисковик (см. slreportgen.report.MATLABFunction для примеров).

Поиск и создание отчетов по функциональным блокам MATLAB

Используйте функции поиска API отчетов и slreportgen.report.MATLABFunction репортер для отчета о функциональных блоках MATLAB.

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

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

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

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.

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. Она показывает таблицу свойств блока, сводную таблицу для одного из аргументов и часть сценария функции. В фактических выходных данных все таблицы аргументов отображаются перед сценарием функции.

Поиск и отчет по функциям 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. Здесь отображается таблица свойств объекта и часть сценария функции.

Настройка вывода отчета о функциях MATLAB

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

  • Использовать классы 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 в текстовом редакторе. root.css содержит стили по умолчанию для MATLABFunction репортер. Начало файла и первый стиль:

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

      * MATLABFunction Репортер

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

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

      .MATLABFunctionFunctionScriptTitle {

      шрифт-семейство: 'Noto Sans', 'Noto Sans CJK JP', 'Noto Sans CJK SC', 'Noto Sans CJK KR';

      font-weight: полужирный;

      margin-top: 10pt;

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

      пробел: пре;

      }

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

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

      Репортер MATLABFunction

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

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

      .MATLABFunctionFunctionScriptTitle {

      шрифт-семейство: 'Noto Sans', 'Noto Sans CJK JP', 'Noto Sans CJK SC', 'Noto Sans CJK KR';

      font-weight: полужирный;

      margin-top: 12pt;

      цвет: синий;

      пробел: пре;

      }

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

    6. Скопируйте папку шаблона в пакет шаблонов. В этом примере пакет шаблона: myHTMLTemplate.htmtx.

      zipTemplate('myHTMLTemplate');

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

      mfunction.TemplateSrc = 'myHTMLTemplate';

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

См. также

| | | | | |