为模型创建报告生成器和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
该报告。
仪和结果类
记者类
发现和报告在一个模型
这个例子展示了如何发现并报告所有仿真软件模块万博1manbetxslrgex_vdp
模型使用BlockFinder
类。由此产生的HTML报告包括每个块的默认信息,并使用默认格式。
导入报告API包,它允许您使用类名不包括他们的包名。例如,您可以使用
BlockFinder
而不是slreportgen.finder.BlockFinder
。除了导入仿真软件报告API基类,基类导入MATLAB报告A万博1manbetxPI。一个典型的报告包括一个标题页,目录,章节,和部分,包括记者类MATLAB报告API。进口slreportgen.finder。*进口slreportgen.report。*进口mlreportgen.report。*
加载
slrgex_vdp
模型。model_name =“slrgex_vdp”;load_system (model_name)
创建容器对象并打开报告。在这种情况下,输出报告保存在压缩
slrgex_vdp_model.htmx
HTML报告。你可以使用任何你想要的输出的名字。如果你不止一次运行报表生成器使用相同的输出文件名,覆盖输出文件。使用仿真软件报万博1manbetx告API发现者和记者在报告生成器程序,您必须使用完全限定的名称创建容器对象。rpt = slreportgen.report.Report (“slrgex_vdp_model”,“html”);打开(rpt)
增加一章,并指定其标题。
ch =章(“在slrgex_vdp模式”);
使用
BlockFinder
类来创建一个查找器。在这种情况下,BlockFinder
发现所有的块模型。使用找到
方法找到指定的块仪。仪= BlockFinder (model_name);结果=找到(仪);
循环的结果发现方法和创建一个部分对于每个块,和添加块属性表的部分。然后,添加每个部分章节。毕竟街区已经添加,添加报告这一章。
为结果=结果教派=部分(“标题”,result.Name);append(教派,结果)追加(ch,教派)结束追加(rpt, ch);
关闭报告和模型,查看报告。
关闭(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)