В этом примере показано, как создать отчет, который описывает входы и выходы модели или подсистемы. Отчет включает главу для модели верхнего уровня и каждой подсистемы в модели. Каждая глава включает раздел для входов и выходов и раздел для блоков в системе.
На этом изображении показаны входные и выходные сводные данные, включенные в отчет.
Откройте модель. Этот пример использует модель, которая имеет входные и выходные блоки верхнего уровня и подсистему с входами и выходами. Входные сигналы верхнего уровня сохраняются в переменной, mappedIO
, который создается при открытии модели.
model = "slreportgen_demo_SystemIO";
open_system(model);
Импортируйте пакеты API генератора отчетов, чтобы не использовать длинные, полные имена классов.
import mlreportgen.report.* import slreportgen.report.* import slreportgen.finder.*
Создайте и откройте объект отчета Simulink. Чтобы создать HTML-отчет Microsoft ® Word, HTML или один файл, измените значение "pdf"
в "docx"
, «html"
, или "html-file"
, соответственно.
rpt = slreportgen.report.Report(model + "_SystemIO_Report","pdf"); open(rpt);
Добавьте заголовка страницу и таблицу содержимого.
titlepage = TitlePage("Title",model + ": System I/O Report","Author","Jane Doe"); add(rpt,titlepage); toc = TableOfContents(); add(rpt, toc);
Найдите и закольцовывайте все системы в модели.
finder = SystemDiagramFinder(model);
while hasNext(finder)
system = next(finder);
Создайте новую главу и добавьте результат схемы.
ch = Chapter("Title",sprintf("System %s",system.Name)); add(ch,system);
Создайте раздел «Входы и выходы» и SystemIO
репортер.
ioSect = Section("Inputs and Outputs");
ioRptr = SystemIO(system);
Для входов и выходов подсистемы SystemIO
reporter по умолчанию включает подробные сведения о входных и выходных портах подсистемы. Для входных входов и выходов модели репортер включает детали о блоках входных и выходных портов. Если система является моделью, установите SystemIO
опции, чтобы опустить эти детали блока, поскольку этот отчет включает ту же информацию в разделе « Блоках» главы.
if strcmp(system.Type,"Simulink.BlockDiagram") ioRptr.ShowDetails = false; end add(ioSect,ioRptr); add(ch,ioSect);
Создайте раздел, содержащий подробную информацию о каждом блоке в системе. Исходные и целевые блоки включены в SystemIO
сводные таблицы ссылаются на соответствующие детали блоков в этом разделе.
blkSect = Section("Blocks");
blkFinder = BlockFinder(system);
results = find(blkFinder);
add(blkSect,results);
add(ch,blkSect);
Добавить главу в отчет.
add(rpt,ch);
end
Закройте и просмотрите отчет.
close(rpt); rptview(rpt);