主要内容

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

slreportgen.finder.StateflowObjectFinder 类

命名空间: slreportgen.finder
超类: mlreportgen.finder.Finder

查找 Stateflow 对象

自 R2023a 起

描述

使用 slreportgen.finder.StateflowObjectFinder 类的对象在 Stateflow® 图中查找对象。您可以使用这些对象来搜索:

  • Simulink® 模型的路径或句柄

  • Stateflow 图模块的路径或句柄

  • Stateflow.Chart 对象

  • Stateflow.State 对象

  • Stateflow.Machine 对象

  • slreportgen.finder.StateflowObjectFinder 对象,表示模型、Stateflow 图、Stateflow 状态或 Stateflow 状态机对象

slreportgen.finder.StateflowObjectFinder 类是 handle 类。

创建对象

描述

finder = StateflowObjectFinder(diagram) 创建一个 Stateflow 对象查找器对象。使用查找器的属性将搜索限制在特定类型的对象上。

注意

此查找器提供了以下选项来获取搜索结果:

  • 要将搜索结果作为数组返回,请使用 find 方法。将结果直接添加到报告中或在 for 循环中处理结果。

  • 要逐个迭代结果,请在 while 循环中使用 hasNextnext 方法。

这两个选项在性能上都没有优势。

示例

finder = StateflowObjectFinder(Name=Value) 使用名称-值参量设置属性。您可以按任意顺序指定多个名称-值参量。

属性

全部展开

要搜索的图,指定为以下值之一:

  • Simulink 模型的路径或句柄

  • Stateflow 图模块的路径或句柄

  • Stateflow.Chart 对象

  • Stateflow.State 对象

  • Stateflow.Machine 对象

  • slreportgen.finder.StateflowObjectFinder 对象,表示模型、Stateflow 图、Stateflow 状态或 Stateflow 状态机对象

要查找的 Stateflow 图对象的类型,指定为字符串、字符数组、字符串数组或字符数组元胞数组,其中包含此表中的这些完全限定名称或短名称:

完全限定名称简称
Allall
Stateflow.Annotationannotation
Stateflow.Boxbox
Stateflow.EMFunctionemfunction
Stateflow.Functionfunction
Stateflow.Junctionjunction
Stateflow.Portport
Stateflow.SLFunctionslfunction
Stateflow.Statestate
Stateflow.Transitiontransition
Stateflow.TruthTabletruthtable
Stateflow.Datadata
Stateflow.Eventevent

如果类型是数组,则指定一组元素类型。默认值为 Allall,查找所有图中的所有对象。使用其中一个值将搜索限制到特定的图对象类型。

是否在搜索结果中包含注释掉的图对象,指定为逻辑值。如果是 false,注释掉的对象将被排除在搜索结果之外。

搜索 Container 的级别数,指定为以下值之一:

描述
1(默认)

仅搜索图顶层可见的对象。搜索包括嵌套状态的对象,但排除子图中的对象。

非负整数

搜索指定层数

Inf

搜索所有层级

对查找器结果进行排序,指定为以下值之一:

描述
"none"不对结果进行排序。
"alphabetical"按名称的字母顺序对结果进行排序。
"systemAlpha"按父系统名称的字母顺序对结果进行排序。
"depth"按在模型层次结构中的深度对结果进行排序。排序列表中的第一个对象是层次结构中最高的对象。例如,一个模型及其子系统按以下顺序排序: myModelmyModel/subsystem1myModel/subsystem1/nestedSubststem

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

要查找的对象的属性,指定为名称-值参量的元胞数组。查找器仅返回具有指定属性和指定值的对象。

示例: finder.Properties = {"ArrowSize","5"}

属性:

GetAccess
公共
SetAccess
公共

数据类型: cell

方法

全部展开

示例

全部折叠

创建一份报告,在 shift_logic 模型内的 sf_car Stateflow 图中查找 Stateflow 数据和事件。

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

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

加载您的 Simulink 模型并创建 PDF 报告。

model_name = "sf_car";
load_system(model_name);
 
rpt = slreportgen.report.Report("output","pdf");

查找 shift_logic 图中的所有数据和事件。

objFinder = StateflowObjectFinder("sf_car/shift_logic");
objFinder.Types = ["data", "event"];
results = find(objFinder);

将结果添加到您的报告中。

append(rpt,results);

关闭模型并查看您的报告。

close(rpt);
close_system(model_name);
rptview(rpt);

版本历史记录

在 R2023a 中推出