slreportgen.report.ExecutionOrder 类
命名空间: slreportgen.report
超类: slreportgen.report.Reporter
系统任务和模块执行顺序报告器
描述
使用 slreportgen.report.ExecutionOrder 类的对象来报告模型或非虚拟子系统的任务以及每个任务中的模块,按执行顺序排序。默认情况下,ExecutionOrder 报告器会生成:
任务名称和属性表
每个任务中的模块列表
有条件执行的块(例如由函数调用或 If 模块触发的子系统)不会显示在模块执行顺序列表中。相反,这些块显示在遵循模块执行顺序列表的 Conditional Execution 表中。该表列出了有条件执行的模块和触发其执行的模块。
使用 ExecutionOrder 报告器属性来过滤报告的内容并自定义内容格式。
注意
要在报告中使用 slreportgen.report.ExecutionOrder 报告器,您必须使用 slreportgen.report.Report 类或子类创建报告。如果将 ExecutionOrder 报告器添加到将 CompileModelBeforeReporting 设置为 false 的 slreportgen.report.Report 对象,则它不会生成内容。
slreportgen.report.ExecutionOrder 类是 handle 类。
创建对象
描述
根据默认模板创建一个空的 reporter = slreportgen.report.ExecutionOrderExecutionOrder 报告器对象。您必须通过设置 Object 属性来指定要报告执行顺序的模型或子系统。使用其他属性来指定报告选项。
创建一个 reporter = slreportgen.report.ExecutionOrder(system)ExecutionOrder 报告器并将 Object 属性设置为指定的模型或子系统。
使用名称-值参量设置报告器属性。您可以按任意顺序指定多个名称-值参量。reporter = slreportgen.report.ExecutionOrder(Name=Value)
属性
要报告的模型或非虚拟子系统模块,指定为以下类型的值之一:
包含模型或子系统路径的字符向量或字符串标量
模型或子系统的句柄
如果将 Object 属性设置为子系统引用,则生成的报告将包含一条消息,说明无法确定图的执行顺序。
指定代表卸载模型或虚拟子系统的 BlockResult 或 DiagramResult 会导致错误。
是否包含任务详情表,指定为 true 或 false。如果 ShowTaskDetails 是 true,报告器将生成一个表,显示指定系统中的任务名称和属性。
数据类型: logical
是否包含模块执行顺序列表,指定为 true 或 false。如果 ShowBlockEecutionOrder 是 true,则报告器会为系统中的每个任务包含一个按执行顺序排序的模块列表。有条件执行的块(例如由函数调用或 If 模块触发的子系统)不会显示在执行顺序列表中。相反,这些块显示在遵循模块执行顺序列表的 Conditional Execution 表中。该表列出了有条件执行的模块和触发其执行的模块。
数据类型: logical
是否包括模块执行顺序的模块图,指定为 true 或 false。当您将 ShowBlockDiagrams 设置为 true 时,报告器将包括一个显示每个任务模块执行顺序的图。如果 ShowBlockExecutionOrder 属性也是 true,则报告器在模块执行顺序之前显示图。
此属性要求模型或子系统可见。当系统被加载到内存中且 ShowBlockDiagrams 属性被设置为 true 时,系统将打开。
数据类型: logical
要报告的每个系统任务的属性,指定为字符串数组或字符向量元胞数组。默认情况下,包含所有属性。有效属性为:
Order- 在每个时间步骤中任务在任务执行顺序中的位置。对于异步和恒定任务,此属性报告为N/A。Name- 任务名称。Type- 任务类型,例如Periodic、Aperiodic、Asynchronous或Constant。Trigger- 周期性任务执行的速率或非周期性任务执行的时间列表。TaskID- 指定系统中的任务索引。SourceBlock- 定义任务的模块。
示例: ["Order" "Name" "Type" "Trigger" "TaskID" "SourceBlock"]
示例: {'Order' 'Name' 'Type'}
是否在任务详情表中显示空列,指定为 true 或 false。如果 ShowEmptyColumns 是 true,则任务详情表包含没有任何数据的列。
数据类型: logical
是否显示模块执行顺序列表中每个模块的类型,指定为 true 或 false。如果 ShowBlocktype 是 true,报告器会在执行顺序列表中的模块名称旁边包含每个模块的类型。
数据类型: logical
是否显示在编译时创建的模块,指定为 true 或 false。如果 ShowHiddenBlocks 是 true,则报告器将包括 Simulink® 在编译模型时插入的模块。如果 ShowHiddenBlocks 是 false,则报告器仅包含用户添加的模块。
数据类型: logical
是否引用非虚拟子系统的模块列表,指定为 true 或 false。如果 IncludeSubsystemBlocks 为真,则报告器将包含对非虚拟子系统模块的引用。SubsystemBlocksDisplayPolicy 属性决定如何引用非虚拟子系统模块。
数据类型: logical
用于引用非虚拟子系统中的模块的执行顺序列表的策略,指定为以下字符串标量或字符向量之一:
"Link"-(默认)在子系统名称旁边插入一个指向该子系统的单独模块执行顺序列表的链接。仅当包含此报告器的报告生成程序还包含用于子系统的单独ExecutionOrder报告器时,此链接才有效。对于多任务模型中包含子系统的每个任务,链接转到子系统ExecutionOrder报告器报告的相应任务的模块执行顺序列表。没有为 MATLAB Function 模块子系统插入链接。"NestedList"- Subsystem 模块显示为嵌套列表。
系统任务用于过滤,指定为函数句柄、字符串标量或字符向量。如果 TaskFilterFcn 为空,则报告将包括所有系统任务。
如果您指定了一个函数句柄,则与该句柄关联的函数必须:
接受以下参量:
taskName- 任务名称。taskType- 任务类型。trigger- 任务的采样时间或命中次数。如果您将非周期性任务的触发时间指定为表达式,则触发器是一个包含要评估的表达式的字符串。sourceBlock- 定义任务的模块。
返回
true以从报告中过滤指定的任务,或返回false以将任务包含在报告中。
例如,请参阅 使用函数句柄过滤任务。
如果您指定一个字符串标量或字符向量,它必须包含一个表达式。表达式:
可以使用变量
taskName、taskType、trigger和sourceBlock必须将变量
isFiltered设置为true才能从报告中过滤指定的任务,或者将变量设置为false才能将任务包含在报告中
例如,请参阅 使用字符串标量过滤任务。
任务详细信息表的格式化程序,指定为 mlreportgen.report.BaseTable 对象。该属性的默认值是 BaseTable 对象,其 TableStyleName 属性设置为 ExecutionOrderTable 样式,该样式在 ExecutionOrder 报告器的默认模板中定义。要自定义表格的外观,请修改默认 BaseTable 对象的属性或将该对象替换为您自己的 BaseTable 对象。如果向 BaseTable 对象的 Title 属性添加内容,则该内容会出现在生成的报告中的表格标题前面。
图报告器用于格式化模块执行顺序图,指定为 slreportgen.report.Diagram 报告器。
模块执行顺序列表的格式化程序,指定为 mlreportgen.dom.OrderedList 对象或 mlreportgen.dom.UnorderedList 对象。OrderedList 或 UnorderedList 对象不能包含列表项。
该属性的默认值是 OrderedList 对象,其 StyleName 属性设置为 ExecutionOrderList 样式,该样式在 ExecutionOrder 报告器的默认模板中定义。要自定义列表的外观,请修改默认 OrderedList 对象的属性,或将该对象替换为您自己的 OrderedList 或 UnorderedList 对象。
此报告器的模板来源,以下列方式之一指定:
字符向量或字符串标量,指定包含此报告器模板的文件的路径
此报告器使用的模板或其模板库中包含此报告器模板的报告器或报告
文档对象模型 (DOM) 文档或文档部分,该报告器使用其模板或其模板库包含该报告器的模板
指定的模板必须与您附加此报告器的报告类型相同。例如,对于 Microsoft® Word 报告,TemplateSrc 必须是 Word 报告模板。如果 TemplateSrc 属性为空,则此报告器将使用默认报告器模板作为报告的输出类型。
属性:
GetAccess | 公共 |
SetAccess | 公共 |
NonCopyable | true |
此报告器的模板名称,指定为字符向量或字符串标量。此报告器的模板必须位于此报告器 TemplateSrc 属性所指定模板的模板库中。
属性:
GetAccess | 公共 |
SetAccess | 公共 |
数据类型: char | string
此报告器的超链接目标,指定为指定链接目标 ID 的字符向量或字符串标量,或 mlreportgen.dom.LinkTarget 对象。字符向量或字符串标量值转换为 LinkTarget 对象。链接目标紧接在输出报告中此报告器的内容之前。
属性:
GetAccess | 公共 |
SetAccess | 公共 |
方法
slreportgen.report.ExecutionOrder.createTemplate | 创建执行顺序报告器模板 |
slreportgen.report.ExecutionOrder.customizeReporter | 创建自定义执行顺序报告器类 |
slreportgen.report.ExecutionOrder.getClassFolder | 获取执行顺序报告器类定义文件的位置 |
copy | 创建 Simulink 报告器对象的副本并对某些属性值进行深度复制 |
getImpl | 获取报告器的实施 |
示例
对于 vdp 模型的每个模块图或虚拟子系统,按执行顺序报告系统任务和每个任务中的块。
打开模型。
model_name = "vdp";
load_system(model_name); 创建报告。
rpt = slreportgen.report.Report("ExecutionOrder_example","pdf");
创建一个查找器来查找模型中的所有图。
finder = slreportgen.finder.DiagramFinder(model_name);
创建一个 Diagrams 章节。
ch = mlreportgen.report.Chapter("Diagrams");对于每个作为模块图或非虚拟子系统的图,使用 slreportgen.report.ExecutionOrder 报告器属性的默认值按执行顺序报告系统任务和块。
while hasNext(finder) result = next(finder); if (strcmpi(result.Type,"Simulink.SubSystem") && strcmpi( ... get_param(result.Object,"IsSubsystemVirtual"),"off")) || ... strcmpi(result.Type,"Simulink.BlockDiagram") sect = mlreportgen.report.Section(result.Name); append(sect,result); rptr = slreportgen.report.ExecutionOrder(result); append(sect,rptr); append(ch,sect); end end
将该章节附加到报告中。
append(rpt,ch);
关闭并查看报告。
close(rpt); rptview(rpt); close_system(model_name)
此示例通过将 TaskFilterFcn 属性指定为函数句柄来报告周期性任务。
打开模型。
model_name = "vdp";
load_system(model_name);创建报告。
rpt = slreportgen.report.Report("ExecutionOrder_example","html");
创建一个查找器来查找模型中的图。
finder = slreportgen.finder.DiagramFinder(model_name);
创建一个 Diagrams 章节。
ch = mlreportgen.report.Chapter("Diagrams");对于每个模块图或非虚拟子系统,按执行顺序报告系统任务和模块。将 TaskFilterFcn 属性指定为名为 filterFcnHandle 的函数句柄,该函数句柄过滤非周期性任务。
while hasNext(finder) result = next(finder); if (strcmpi(result.Type,"Simulink.SubSystem") && strcmpi( ... get_param(result.Object,"IsSubsystemVirtual"),"off")) || ... strcmpi(result.Type,"Simulink.BlockDiagram") sect = mlreportgen.report.Section(result.Name); append(sect,result); rptr = slreportgen.report.ExecutionOrder(result); filterFcnHandle = @(taskName,taskType,trigger,sourceBlock) ... ~strcmpi(taskType,"Periodic"); rptr.TaskFilterFcn = filterFcnHandle; append(sect,rptr); append(ch,sect); end end
将该章节附加到报告中。
append(rpt,ch);
关闭并查看报告。
close(rpt); rptview(rpt); close_system(model_name)
此示例通过将 TaskFilterFcn 属性指定为字符串来报告定期任务。
打开模型。
model_name = "vdp";
load_system(model_name);创建报告。
rpt = slreportgen.report.Report("ExecutionOrder_example","html");
创建一个查找器来查找模型中的图。
finder = slreportgen.finder.DiagramFinder(model_name);
创建一个 Diagrams 章节。
ch = mlreportgen.report.Chapter("Diagrams");对于每个模块图或非虚拟子系统,按执行顺序报告系统任务和模块。将 TaskFilterFcn 属性指定为一个字符串,以过滤非周期性任务。字符串必须包含一个表达式,该表达式设置名为 isFiltered 的变量的值。
while hasNext(finder) result = next(finder); if (strcmpi(result.Type,"Simulink.SubSystem") && strcmpi( ... get_param(result.Object,"IsSubsystemVirtual"),"off")) || ... strcmpi(result.Type,"Simulink.BlockDiagram") sect = mlreportgen.report.Section(result.Name); append(sect,result); rptr = slreportgen.report.ExecutionOrder(result); filterStr = "isFiltered = ~strcmpi(taskType, ""Periodic"");"; rptr.TaskFilterFcn = filterStr; append(sect,rptr); append(ch,sect); end end
将该章节附加到报告中。
append(rpt,ch);
关闭并查看报告。
close(rpt); rptview(rpt); close_system(model_name)
版本历史记录
在 R2020b 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)