Package: slreportgen.finder
Superclasses:
Create diagram element finder object
Finds elements in a Simulink® block or Stateflow® chart diagram.
creates a finder that finds elements of a Simulink block or Stateflow chart diagram. By default this finder finds blocks, annotations, lines,
states, and other elements in the diagram. Use the properties of the finder to constrain
the search to specific types of elements.finder
= DiagramElementFinder(diagram
)
Note
This finder provides two ways to get search results:
To return the search results as an array, use the find
method. Add the results directly to a report or process the results in a
for
loop.
To iterate through the results one at a time, use the hasNext
and next
methods in a while
loop.
Neither option has a performance advantage.
sets properties using name-value pairs. You can specify multiple name-value pair
arguments in any order. Enclose each property name in single quotes.finder
= DiagramElementFinder(Name,Value
)
finds diagram
elements in the results
= find(finder)diagram
specified by the finder. This method
returns the diagram elements it finds wrapped in result objects of type
slreportgen.finder.DiagramElementResult
. To add tables of the diagram
element properties, add the results objects directly to the report or add them to a
reporter that you then add to a report. The reports to which you can add the
results
of this method must be reports of type
slreportgen.report.Report
.
tf = hasNext(finder)
determines if the diagram that the finder
searches contains at least one element. If the diagram has at least one element, the
hasNext
method queues that element as the next element that the
next
method will return. The hasNext
method then
returns true
. Use the next
method to obtain that
element. On subsequent calls, the hasNext
method determines if the
diagram has an element that the next
method has not yet retrieved. It
queues the element for the next
method to retrieve and returns
true
. If there are no more elements exist to be retrieved, this
method returns false
. To search a diagram progressively for elements,
use the hasNext
method with the next
method in a
while
loop.
result = next(finder)
returns the next search
result
in the result queue that the hasNext
method created. This method returns the diagram element that it finds wrapped in a
result object of type slreportgen.finder.DiagramElementResult
. To add
tables of the diagram element properties, add the results objects directly to the report
or add them to a reporter that you then add to a report. The reports to which you can
add the results
of this method must be of type
slreportgen.report.Report
.
Handle. To learn how handle classes affect copy operations, see Copying Objects.
Find the block, annotation, and line diagram elements to a search depth of 1 in
the f14
model.
import mlreportgen.report.* import slreportgen.report.* import slreportgen.finder.* model_name = 'f14'; load_system(model_name); rpt = slreportgen.report.Report('output','pdf'); add(rpt, TitlePage("Title",sprintf('%s Model',... model_name))); add(rpt, TableOfContents); diagFinder = SystemDiagramFinder("Container", ... model_name,"SearchDepth",1); while hasNext(diagFinder) system = next(diagFinder); chapter = Chapter("Title",system.Name); add(chapter,system); sect = Section("Title","Diagram Elements"); elemFinder = DiagramElementFinder("Container", ... system.Object, "Types",... ["block" "annotation" "line"]); elems = find(elemFinder); for elem = elems add(sect, elem); end add(chapter, sect); add(rpt, chapter); end close(rpt); close_system(model_name); rptview(rpt);
slreportgen.finder.AnnotationFinder
| slreportgen.finder.BlockFinder
| slreportgen.finder.ChartDiagramFinder
| slreportgen.finder.DiagramElementResult
| slreportgen.finder.DiagramFinder
| slreportgen.finder.StateFinder
| slreportgen.finder.StateflowDiagramElementFinder
| slreportgen.finder.SystemDiagramFinder
| slreportgen.report.Diagram
| slreportgen.report.Report