В этом примере показано, как создать отчет, который описывает вводы и выводы модели или подсистемы. Отчет включает в себя главу для модели верхнего уровня и каждой подсистемы в модели. Каждая глава включает раздел для вводов и выводов и раздел для блоков в системе.
Это изображение показывает сводные данные ввода и вывода, включенные в отчет.
Откройте модель. Этот пример использует модель, которая имеет блоки ввода и вывода верхнего уровня и подсистему с вводами и выводами. Входные сигналы верхнего уровня хранятся в переменной, mappedIO
, который создается, когда модель открыта.
model = "slreportgen_demo_SystemIO";
open_system(model);
Импортируйте пакеты API Report Generator, таким образом, вы не должны использовать долго, полностью определенные имена классов.
import mlreportgen.report.* import slreportgen.report.* import slreportgen.finder.*
Создайте и откройте объект отчета Simulink. Чтобы создать Word Microsoft®, HTML или однофайловый отчет 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);
Создайте раздел "Inputs and Outputs" и SystemIO
генератор отчетов.
ioSect = Section("Inputs and Outputs");
ioRptr = SystemIO(system);
Для вводов и выводов подсистемы, SystemIO
генератор отчетов по умолчанию включает детали о портах ввода и вывода подсистемы. Для входов и выходов модели генератор отчетов включает детали о блоках выходного порта и импорте. Если система является моделью, установите SystemIO
опции, чтобы не использовать эти, которые детализирует блок, потому что этот отчет включает в себя ту же информацию в разделе "Blocks" главы.
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);