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

Используйте 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 репортера так же, как вы настраиваете любой отчет или репортер:
Использование классов 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.
Создайте копию шаблона HTML по умолчанию. В этом примере пакет шаблона сохраняется следующим myHTMLTemplate.htmtx в текущей рабочей папке.
mfunction = slreportgen.report.MATLABFunction;
mfunction.createTemplate('myHTMLTemplate','html');Разархивируйте пакет шаблона. Пакет разархивированного шаблона представляет собой папку с файлами документов, таблиц стилей и изображений. В этом примере папка пакета шаблона сохранена в текущей рабочей папке.
unzipTemplate('myHTMLTemplate.htmtx');Из 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;
}
Отредактируйте стили по мере необходимости. В этом примере верхнее поле над заголовком скрипта функции увеличивается до 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;
}
Сохраните файл.
Заархивируйте папку шаблона в пакет шаблона. В данном примере пакет шаблона myHTMLTemplate.htmtx.
zipTemplate('myHTMLTemplate');В программе генератора отчетов для использования сохраненного шаблона укажите источник шаблона.
mfunction.TemplateSrc = 'myHTMLTemplate';
Дополнительные сведения см. в разделе Шаблоны для программ отчетов DOM API.
MATLAB Function | slreportgen.finder.BlockFinder | slreportgen.finder.DiagramElementFinder | slreportgen.finder.StateflowDiagramElementFinder | slreportgen.report.MATLABFunction | unzipTemplate | zipTemplate