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