主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

报告系统输入和输出

此示例显示如何创建描述模型或子系统的输入和输出的报告。该报告包括顶层模型和模型中每个子系统的一章。每章均包含有关输入和输出的节以及有关系统中的模块的节。

该图显示了报告中包含的输入和输出摘要。

打开模型

打开一个模型。此示例使用具有顶层输入和输出模块以及具有输入和输出的子系统的模型。顶层输入信号存储在变量 mappedIO 中,该变量是在打开模型时创建的。

model = "slreportgen_demo_SystemIO";
open_system(model);

报告设置

导入报告生成器 API 命名空间,这样您就不必使用长而完全限定的类名。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

创建并打开 Simulink 报告对象。要创建 Microsoft® Word、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);   

创建一个“输入和输出”节和一个 SystemIO 报告器。

    ioSect = Section("Inputs and Outputs");
    ioRptr = SystemIO(system);    

对于子系统的输入和输出,SystemIO 报告器默认包含有关子系统的输入和输出端口的详细信息。对于模型输入和输出,报告器包括有关输入端口和输出端口模块的详细信息。如果系统是一个模型,请设置 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);