主要内容

生成Simulink和状态流元素的报告金宝app

查找器和报告器减少了在Simulink上编写查找和报告代码所需的时间和复杂性金宝app®模型元素,例如图和块,以及在statflow上®图表和过渡等等。的金宝app仿真软件报告生成器™报告API是DOM API之上的一层。它的查找器和报告器基于Simulink和statflow查找基类。金宝app您可以指定在其中查找特定元素的容器,例如子系统中的块或图表中的状态。查找器对象在相应的查找器结果对象数组中返回其结果。

Simu金宝applink Report API还包括报告器类,它返回容器的图像。这个图像是模型的顶层。

查找程序返回的每个结果对象都有一个相关的报告对象,报告这些结果。报告对象保存内容并格式化内容,例如属性表和数据图。您可以将报表对象添加到报表中。使用MATLAB®报表API报告定义公共报表元素。看到什么是记者?获取信息。

所有发现者和记者都有以下特点:

  • 默认行为和值

  • 允许重写和自定义其输出

所有的发现者找到hasNext,下一个方法。的找到方法查找并在结果对象数组中返回所找到的指定类型的每个元素的所有元素。的hasNext下一个方法每次查找并返回一个元素,用于遍历结果列表。的hasNext方法检查容器是否至少有一个指定类型的元素。如果容器有一个或多个元素,则hasNext方法将其排队下一个方法查找并作为结果对象返回。

所有记者都有预定义的模板。每个报告器的模板定义了其格式、布局和内容孔。您不需要更改模板或指定任何格式、布局或孔,除非您想要定制报表。您可以通过复制和编辑默认模板或使用新模板来定制报表。编辑默认模板的副本为您提供了自定义模板所需的起点和结构。使用新模板可以让您从一个空白文件开始完全定义模板。要更改报告内容的顺序,请重新排列模板中的孔。查找器不使用模板。定制报告器类的另一种方法是子类化它。

每种输出类型的默认报告器模板位于模板库中,模板库位于

matlab工具箱\ \共享\ slreportgen \ rpt \ rpt \ + slreportgen \ +报告\ @ <记者> \ \ templates \资源输出> <
的默认模板的路径DiagramReporterPDF输出的
matlab工具箱\ \共享\ slreportgen \ rpt \ rpt \ + slreportgen \ +报告\ \ \ pdf模板\ default.pdftx @DiagramReporter \资源
有关编辑模板的详细示例,请参阅“定制报表API模板”一节什么是记者?

金宝appSimulink报告API类

Simu金宝applink Report API提供了这些查找器、结果和报告类。要在报表生成程序中使用这些类,必须创建类型为的容器slreportgen.report.Report保存报告。

查找器和结果类

报告API类 描述
slreportgen.finder.AnnotationFinder 查找Simu金宝applink框图注释。
slreportgen.finder.BlockFinder 在Simulink块图中查找块。金宝app
slreportgen.finder.BlockResult 对象找到的块BlockFinder对象。
slreportgen.finder.ChartDiagramFinder 在模型中查找状态流图。
slreportgen.finder.DataDictionaryFinder 查找Simu金宝applink数据字典。
slreportgen.finder.DataDictionaryResult 对象找到的数据字典DataDictionary对象。
slreportgen.finder.DiagramElementFinder 查找Simulink块图或状态流程图的元金宝app素。
slreportgen.finder.DiagramElementResult 包含由DiagramElementFinder对象。
slreportgen.finder.DiagramFinder 在Simulink模型中查找框图和图表。金宝app
slreportgen.finder.DiagramResult 包含由DiagramFinder对象。
slreportgen.finder.ModelVariableFinder 查找Simulink模型使用的变量。金宝app
slreportgen.finder.ModelVariableResult 包含一个模型变量ModelVariableFinder对象。
slreportgen.finder.SignalFinder 查找模型或块使用的信号。
slreportgen.finder.SignalResult 包含一个由SignalFinder对象。
slreportgen.finder.StateFinder 在状态流图中查找状态。
slreportgen.finder.StateflowDiagramElementFinder 查找状态流图的元素。
slreportgen.finder.SystemDiagramFinder 在Simulink模型中查找系统框图。金宝app

记者类

报告API类 描述
slreportgen.report.Bus 关于由Simulink块选择或创建的总线的报告。金宝app
slreportgen.report.BusObject 报告金宝app仿真软件。公共汽车模型使用的对象。
slreportgen.report.CFunction 报告C函数块。
slreportgen.report.DataDictionary 关于Simulink数据字金宝app典的报告。
slreportgen.report.Diagram 创建Simulink块图或状态流程图的快照。金宝app
slreportgen.report.DocBlock

关于Simulink的报告金宝appDocBlock

slreportgen.report.ElementDiagram 关于元素图快照和标题的报告
slreportgen.report.ExecutionOrder 报告模型或非虚拟子系统的任务和每个任务中的块,按执行顺序排序。
slreportgen.report.LookupTable 关于Simulink查找表块的断点和输出点的报告。金宝app
slreportgen.report.MATLABFunction

报告MATLAB函数块或statflow MATLAB函数。

slreportgen.report.ModelConfiguration 报告模型的活动配置集。
slreportgen.report.ModelVariable 报告一个模型变量。
slreportgen.report.Notes 关于Simulink或金宝app状态流图注释的报告。
slreportgen.report.Signal 报告一个信号。
slreportgen.report.金宝appSimulinkObjectProperties 创建一个包含Simulink对象属性的表。金宝app
slreportgen.report.StateflowObjectProperties 创建一个包含statflow对象属性的表。
slreportgen.report.SystemHierarchy 创建一个嵌套的Simulink模型或子系统的子系统列表。金宝app
slreportgen.report.SystemIO Simulink系统输金宝app入和输出信号的报告。
slreportgen.report.TestSequence

关于Simulink的报告金宝app测试序列块。

slreportgen.report.TruthTable 关于Simulink真值表金宝app块或Stateflow真值表对象的报告。

查找并报告模型中的块

控件中的所有Simulink块如何查找和报告金宝appslrgex_vdp模型使用BlockFinder类。生成的HTML报告包含默认信息,并对每个块使用默认格式。

  1. 导入Report API包,它允许您使用类名而不包括它们的包名。例如,你可以用BlockFinder而不是slreportgen.finder.BlockFinder.除了导入Simulink Report API基类外,还导金宝app入MATLAB Report API基类。典型的报告包括标题页、目录、章节和节,您可以在MATLAB报告API中将其作为报告类包含。

    进口slreportgen.finder。*进口slreportgen.report。*进口mlreportgen.report。*
  2. 加载slrgex_vdp模型。

    model_name =“slrgex_vdp”;load_system (model_name)
  3. 创建容器对象以保存报表并打开报表。在这种情况下,输出报告以压缩格式保存slrgex_vdp_model.htmxHTML报告。您可以使用任何您想要的输出名称。如果使用相同的输出文件名多次运行报表生成器,则会覆盖输出文件。要在报表生成器金宝app程序中使用Simulink Report API查找器和报告器,必须使用完全限定名来创建容器对象。

    rpt = slreportgen.report.Report (“slrgex_vdp_model”“html”);打开(rpt)
  4. 添加一个章节并指定其标题。

    ch =章(' block in slrgex_vdp model');
  5. 使用BlockFinder类创建查找程序。在这种情况下BlockFinder查找模型中的所有块。使用找到方法查找由查找程序指定的块。

    仪= BlockFinder (model_name);结果=找到(仪);
  6. 循环find方法的结果并为每个块创建一个节,并将块属性表添加到该节中。然后,将每个章节添加到章节中。在添加了所有块之后,将章节添加到报告中。

    result = results Section = Section(“标题”, result.Name);append(教派,结果)追加(ch,教派)结束追加(rpt, ch);
  7. 关闭报表和模型,并查看报表。

    关闭(rpt);close_system (model_name);rptview (rpt);

完整的程序是

进口slreportgen.finder。*进口slreportgen.report。*进口mlreportgen.report。*model_name =“slrgex_vdp”;load_system (model_name);rpt = slreportgen.report.Report (“slrgex_vdp_model”“html”);open(rpt) ch =' block in slrgex_vdp model');仪= BlockFinder (model_name);结果=找到(仪);result = results Section = Section(“标题”, result.Name);追加(教派,结果)追加(ch,教派);结束追加(rpt, ch);关上(rpt) close_system (model_name) rptview (rpt)

结果报告的前两个块显示了章节标题、节标题和属性表。

对不同的块类型使用特定查找器和报告器

控件中的所有块创建一个PDF报告生成器slrgex_radar_eml模型。

要查找所有块,请使用BlockFinder.的如果语句显示了如何进行测试MATLAB函数块。使用MATLABFunction记者报道MATLAB函数块的细节。的其他的语句显示了如何阻塞除MATLAB函数块使用BlockFinder找到方法的结果。

blkfinder = BlockFinder (model_name);黑色=找到(blkfinder);如果slreportgen.utils.isMATLABFunction(blks(i).Object) rptr = MATLABFunction(blks(i).Object);秒=节(黑色(i) . name);append(sec,rptr) else sec = Section(blks(i).Name);追加(sec,黑色(我)追加(ch, sec)
blkfinder = BlockFinder (model_name);黑色=找到(blkfinder);

完整的程序是

进口slreportgen.report。*进口slreportgen.finder。*进口mlreportgen.report。* model_name = 'slrgex_radar_eml';load_system(model_name) rpt = slreportgen.report.Report('radar','pdf');open(rpt) blkfinder = BlockFinder(model_name);黑色=找到(blkfinder);ch =章('块在slrgex_radar_eml模型');for i=1:length(blks) if slreportgen.utils.isMATLABFunction(blks(i).Object) rptr = MATLABFunction(blks(i).Object);秒=节(黑色(i) . name);append(sec,rptr) else sec = Section(blks(i).Name); append(sec,blks(i)) append(ch,sec) end end append(rpt,ch) close(rpt) close_system(model_name) rptview(rpt)

一个例子的信息报告MATLAB函数块的MATLABFunction记者:

的信息报告的一个例子找到的方法BlockFinder是:

查找和报告状态流元素

本示例描述如何查找和报告statflow状态、转换和连接。它报道了control_logic图表的slrgex_fuelsys_fuel_rate_control模型。

这部分代码使用了StateFinder对象及其找到方法查找并报告图表中的状态。它循环遍历已找到的状态数组,并将每个状态添加到章节中。

stFinder = StateFinder(中高);州=找到(stFinder);State = State附加(章,状态)结束append (rpt)章

要报告转换,请使用StateflowDiagramElementFinder对象及其找到方法。若要显示比默认宽度更窄的属性表,请自定义输出。首先,获得记者的结果。要设置宽度,请使用TableWidth记者的财产。

章=章(“标题”“转换”);trFinder = StateflowDiagramElementFinder...“容器”、中高“类型”“过渡”);转换=找到(trFinder);rtr = transition. getreporter;rptr.PropertyTable.TableWidth =“3”;追加(章,rptr)结束append (rpt)章

完整的程序是

进口mlreportgen.report。*进口slreportgen.report。*进口slreportgen.finder。*model_name =“slrgex_fuelsys_fuel_rate_control”;load_system (model_name);中高=“slrgex_fuelsys_fuel_rate_control / control_logic”;rpt = slreportgen.report.Report (“输出”“pdf”);open(rpt) tp = TitlePage(“标题”...“slrgex_fuelsys_fuel_rate_control控制逻辑图”);追加(rpt, tp)追加(rpt, TableOfContents);章=章(“标题”“州”);stFinder = StateFinder(中高);州=找到(stFinder);State = State附加(章,状态)结束append(rpt,章)“标题”“转换”);trFinder = StateflowDiagramElementFinder...“容器”、中高“类型”“过渡”);转换=找到(trFinder);rtr = transition. getreporter;rptr.PropertyTable.TableWidth =“3”;追加(章,rptr)结束关闭(rpt) close_system(model_name) rptview(rpt)

另请参阅

相关的话题