主要内容

为模型创建报告生成器和Stateflow元素万博1manbetx

发现者和记者减少时间和复杂性要求编写代码来发现和报告模型万博1manbetx®模型元素,比如图表和街区,Stateflow®图表和转换,等等。万博1manbetx仿真软件报告生成器™报告API是DOM API之上的一层。它的发现者和记者都是基于仿真软件和Stateflow找到基类。万博1manbetx您指定的容器中找到特定元素,如在一个子系统或状态图。仪对象返回他们的结果在一个相应的查询结果对象的数组。

仿真软件万博1manbetx报告API还包括记者类,它返回一个容器的形象。这张照片是一个模型的顶层。

每一个查询返回的结果对象都有一个关联的记者对象,报告结果。记者对象持有的内容和格式内容,例如表的属性和数据块。记者对象添加到你的报告。使用MATLAB®记者报告API定义常见的报表元素。看到记者是什么?获取信息。

所有的发现者和记者都有这些特点:

  • 默认的行为和价值观

  • 允许覆盖和定制他们的输出

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

所有的记者都有预定义的模板。每个记者的模板定义其格式、布局和内容漏洞。你不需要改变模板或指定任何格式,布局,或漏洞,除非你想要定制的报告。你可以定制你的报告通过复制和编辑默认模板或使用一个新的模板。编辑默认模板的副本给你一个起点和结构定制模板。使用一个新模板允许您完全定义模板从一个空白文件。改变报告内容的顺序,重新排序模板的孔。查找器不使用模板。定制一个记者类的另一种方法是通过子类化。

每个输出类型的默认记者模板模板库,这是

matlab工具箱\ \共享\ slreportgen \ rpt \ rpt \ + slreportgen \ +报告\ @ <记者> \资源\ templates \ <输出>
例如,路径的默认模板DiagramReporter对于PDF输出
matlab工具箱\ \共享\ slreportgen \ rpt \ rpt \ + slreportgen \ +报告\ \ \ pdf模板\ default.pdftx @DiagramReporter \资源
编辑模板的一个详细的示例,请参见“记者元素”部分记者是什么?

万博1manbetx仿真软件报告API类

仿真软件万博1manbetx报告API提供了这些仪,结果,和记者类。在报告生成器程序使用这些类,您必须创建一个容器的类型slreportgen.report.Report该报告。

仪和结果类

报告API类 描述
slreportgen.finder.AnnotationFinder 发现模型框图万博1manbetx注释。
slreportgen.finder.BlockFinder 发现在一个仿真软件框图。万博1manbetx
slreportgen.finder.BlockResult 包含一块发现的BlockFinder对象。
slreportgen.finder.ChartDiagramFinder 发现Stateflow图表模型中。
slreportgen.finder.DataDictionaryFinder 发现模型数据万博1manbetx字典。
slreportgen.finder.DataDictionaryResult 包含一个数据字典找到的DataDictionary对象。
slreportgen.finder.DiagramElementFinder 发现元素的模型框图或Stateflow图万博1manbetx表。
slreportgen.finder.DiagramElementResult 包含一个图表元素发现的DiagramElementFinder对象。
slreportgen.finder.DiagramFinder 发现方框图和图表在仿真软件模型。万博1manbetx
slreportgen.finder.DiagramResult 发现了一个包含一个图DiagramFinder对象。
slreportgen.finder.ModelVariableFinder 发现变量使用的仿真软件模型。万博1manbetx
slreportgen.finder.ModelVariableResult 包含一个变量发现模型ModelVariableFinder对象。
slreportgen.finder.SignalFinder 发现信号使用的模型或块。
slreportgen.finder.SignalResult 包含发现的一个信号SignalFinder对象。
slreportgen.finder.StateFinder 发现在Stateflow图表。
slreportgen.finder.StateflowDiagramElementFinder 发现Stateflow图的元素。
slreportgen.finder.SystemDiagramFinder 发现系统在仿真软件模型方框图。万博1manbetx

记者类

报告API类 描述
slreportgen.report.Bus 报告在公共汽车上选择或创建的模型块。万博1manbetx
slreportgen.report.BusObject 报告万博1manbetxSimulink.Bus使用一个模型对象。
slreportgen.report.CFunction 报告C函数块。
slreportgen.report.DataDictionary 报告模型数据字典。万博1manbetx
slreportgen.report.Diagram 创建一个快照模型框图或Stateflow图表。万博1manbetx
slreportgen.report.DocBlock

报告仿真软件万博1manbetxDocBlock

slreportgen.report.ElementDiagram 报告一个元素图快照和标题。
slreportgen.report.ExecutionOrder 报告的任务模型或nonvirtual子系统和每个任务的块,按执行顺序排序。
slreportgen.report.LookupTable 报告断点和输出点模型的查找表。万博1manbetx
slreportgen.report.MATLABFunction

报告MATLAB函数块或一个Stateflow MATLAB函数。

slreportgen.report.ModelConfiguration 报告组激活配置的一个模型。
slreportgen.report.ModelVariable 报告一个模型变量。
slreportgen.report.Notes 报告模型或者State万博1manbetxflow图笔记。
slreportgen.report.Signal 报告一个信号。
slreportgen.report.万博1manbetxSimulinkObjectProperties 创建一个表的一个模型对象的属性。万博1manbetx
slreportgen.report.StateflowObjectProperties 创建一个表的一个Stateflow对象的属性。
slreportgen.report.SystemHierarchy 创建一个嵌套列表的子系统仿真软件模型或子系统。万博1manbetx
slreportgen.report.SystemIO 报告仿真软件系统的输入万博1manbetx和输出信号。
slreportgen.report.TestSequence

报告仿真软件万博1manbetx测试序列块。

slreportgen.report.TruthTable 报告一个仿真软件真值表块或万博1manbetxStateflow真值表对象。

发现和报告在一个模型

这个例子展示了如何发现并报告所有仿真软件模块万博1manbetxslrgex_vdp模型使用BlockFinder类。由此产生的HTML报告包括每个块的默认信息,并使用默认格式。

  1. 导入报告API包,它允许您使用类名不包括他们的包名。例如,您可以使用BlockFinder而不是slreportgen.finder.BlockFinder。除了导入仿真软件报告API基类,基类导入MATLAB报告A万博1manbetxPI。一个典型的报告包括一个标题页,目录,章节,和部分,包括记者类MATLAB报告API。

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

    model_name =“slrgex_vdp”;load_system (model_name)
  3. 创建容器对象并打开报告。在这种情况下,输出报告保存在压缩slrgex_vdp_model.htmxHTML报告。你可以使用任何你想要的输出的名字。如果你不止一次运行报表生成器使用相同的输出文件名,覆盖输出文件。使用仿真软件报万博1manbetx告API发现者和记者在报告生成器程序,您必须使用完全限定的名称创建容器对象。

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

    ch =章(“在slrgex_vdp模式”);
  5. 使用BlockFinder类来创建一个查找器。在这种情况下,BlockFinder发现所有的块模型。使用找到方法找到指定的块仪。

    仪= BlockFinder (model_name);结果=找到(仪);
  6. 循环的结果发现方法和创建一个部分对于每个块,和添加块属性表的部分。然后,添加每个部分章节。毕竟街区已经添加,添加报告这一章。

    结果=结果教派=部分(“标题”,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”);打开(rpt) ch =(章“在slrgex_vdp模式”);仪= BlockFinder (model_name);结果=找到(仪);结果=结果教派=部分(“标题”,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(黑色(我).Object) rptr = MATLABFunction(黑色(我).Object);秒=节(黑色(i) . name);rptr append (sec)追加(ch, sec)秒=其他部分(黑色(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(“雷达”,“pdf”);打开(rpt) blkfinder = BlockFinder (model_name);黑色=找到(blkfinder);ch =章(“slrgex_radar_eml模型块”);i = 1:长度(黑色)如果slreportgen.utils.isMATLABFunction(黑色(我).Object) rptr = MATLABFunction(黑色(我).Object);秒=节(黑色(i) . name);rptr append (sec)追加(ch, sec)秒=其他部分(黑色(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是:

发现并报告Stateflow元素

这个例子描述了如何发现并报告Stateflow状态,过渡和连接。这报告control_logic图表的slrgex_fuelsys_fuel_rate_control模型。

这段代码使用StateFinder对象及其找到方法来发现并报告状态图。它循环遍历一系列发现状态和增加了每一个章。

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

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

章=章(“标题”,“转换”);trFinder = StateflowDiagramElementFinder(“容器”、中高“类型”,“过渡”);转换=找到(trFinder);过渡=转换rptr = 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”);打开(rpt) tp = TitlePage (“标题”,“slrgex_fuelsys_fuel_rate_control控制逻辑图”);追加(rpt, tp)追加(rpt, TableOfContents);章=章(“标题”,“州”);stFinder = StateFinder(中高);州=找到(stFinder);状态=状态附加(章,状态)结束追加(rpt)章=章(章“标题”,“转换”);trFinder = StateflowDiagramElementFinder(“容器”、中高“类型”,“过渡”);转换=找到(trFinder);过渡=转换rptr = transition.getReporter;rptr.PropertyTable。TableWidth =“3”;追加(章,rptr)结束追加(rpt)章关闭(rpt) close_system (model_name) rptview (rpt)

另请参阅

相关的话题