Main Content

slreportgen.finder.StateflowDiagramElementFinder クラス

名前空間: slreportgen.finder
スーパークラス: slreportgen.finder.StateflowObjectFinder

Stateflow ブロック線図要素の検索

説明

StateflowDiagramElementFinder は、Stateflow® チャート図内の要素を検索するファインダー オブジェクトを作成します。

slreportgen.finder.StateflowDiagramElementFinder クラスは handle クラスです。

作成

説明

finder = StateflowDiagramElementFinder(diagram) は、Stateflow チャート図内の要素を検索するファインダーを作成します。既定では、このファインダーは指定された Stateflow チャート図内でステート、遷移、真理値表、およびその他の要素を検索します。ファインダーのプロパティを使用して、検索を特定タイプの要素に制約します。

メモ

このファインダーには、検索結果の取得方法として次のオプションが用意されています。

  • 検索結果を配列として返すには、find メソッドを使用します。結果をレポートに直接追加するか、for ループで結果を処理します。

  • 一度に 1 つずつ結果を反復処理するには、while ループで hasNext メソッドと next メソッドを使用します。

これらのオプションに、パフォーマンス上の差はありません。

finder = StateflowDiagramElementFinder(Name=Value) は、名前と値の引数を使用してプロパティを設定します。複数の名前と値の引数を任意の順序で指定できます。

入力引数

すべて展開する

Container プロパティを参照してください。

プロパティ

すべて展開する

検索するチャート図。次のいずれかの値として指定します。

  • Stateflow Chart ブロックのハンドル

  • Stateflow Chart ブロックへのパス

  • Stateflow チャート ID

  • Stateflow チャート オブジェクト

  • Stateflow

    ステート オブジェクト

  • Simulink® モデルへのパスまたはハンドル

  • モデル、チャート、またはステートを表すファインダー結果

検索する Stateflow ブロック線図要素のタイプ。string、文字配列、string の配列、または文字配列の cell 配列として指定します。タイプが配列の場合、一連の要素タイプが指定されます。既定値は All または all であり、すべてのブロック線図内のすべての要素を検索します。次のいずれかの値を使用して、検索を特定のブロック線図要素タイプに制約します。完全修飾名または省略名を使用できます。

完全修飾名省略名
Allall
Stateflow.Annotationannotation
Stateflow.Boxbox
Stateflow.EMFunctionemfunction
Stateflow.Functionfunction
Stateflow.Junctionjunction
Stateflow.Portport
Stateflow.SLFunctionslfunction
Stateflow.Statestate
Stateflow.Transitiontransition
Stateflow.TruthTabletruthtable

コメントアウトされたチャート要素を検索結果に含めるかどうか。logical として指定します。false の場合、コメントアウトされた要素は検索結果から除外されます。

Container を検索するレベルの数。次のいずれかの値として指定します。

説明
[] (既定)

チャートの最上位から参照できる要素のみを検索します。検索には、入れ子形式のステート内にある要素が含まれますが、サブチャート内の要素は除外されます。

非負の整数

指定された数のレベルを検索します。

inf

すべてのレベルを検索します。

ファインダーの結果を並べ替えます。次のいずれかの値として指定します。

説明
"none"結果を並べ替えません。
"alphabetical"結果を名前のアルファベット順に並べ替えます。
"systemAlpha"結果を親システム名のアルファベット順に並べ替えます。
"depth"結果をモデルの階層構造の深さ順に並べ替えます。並べ替えられたリストの最初の結果は、階層内で最上位のオブジェクトのものです。たとえば、モデルとそのサブシステムは、 myModel/block1myModel/subsystem1/block2myModel/subsystem1/nestedSubststem/block3 の順に並べ替えられます。

検索対象とするオブジェクトのプロパティ。名前と値のペアの cell 配列として指定します。ファインダーは、指定のプロパティが指定の値をもつ要素のみを返します。

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

メソッド

すべて展開する

すべて折りたたむ

slrgex_fuelsys_fuel_rate_control モデル内の Stateflow ステートと Stateflow 遷移を検索するレポートを作成します。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*
model_name = "slrgex_fuelsys_fuel_rate_control";
load_system(model_name)

rpt = slreportgen.report.Report("output","pdf");
add(rpt, TitlePage(Title=sprintf("%s Charts",model_name)))
add(rpt, TableOfContents)

chartFinder = ChartDiagramFinder(model_name);
while hasNext(chartFinder)
    chart = next(chartFinder);
    chapter = Chapter(Title=chart.Name);
    add(chapter, chart)
    sect = Section(Title="States");
    stateFinder = StateFinder(chart.Object);
    states = find(stateFinder);
    for state = states
        add(sect,state)
    end  
    add(chapter,sect)

    sect = Section(Title="Transitions");
    transitionFinder = StateflowDiagramElementFinder...
       (Container=chart.Object,Types="transition");
    transitions = find(transitionFinder);
    for transition = transitions
        add(sect,transition)
    end  
    add(chapter,sect)
    add(rpt, chapter)
end

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

バージョン履歴

R2017b で導入