メインコンテンツ

slreportgen.finder.DiagramFinder クラス

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

ブロック線図のファインダーを作成する

説明

slreportgen.finder.DiagramFinder クラスのオブジェクトを使用して、Simulink® ブロック線図および Stateflow® チャートを検索します。

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

クラス属性

HandleCompatible
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

説明

finder = DiagramFinder(container) は、指定した container 内の Simulink ブロック線図および Stateflow チャートを検索するファインダーを作成します。特定のタイプのブロック線図またはチャートのみを含めるように検索を制約するには、このファインダーのプロパティを使用します。

メモ

このファインダーは、検索モードまたは反復子モードのいずれかで動作可能です。検索モードでは、その find メソッドを使用して、検索結果を結果の配列として返します。反復子モードでは、その hasNext メソッドと next メソッドを使用して、検索結果を 1 つずつ返します。多数のモデル参照をもつモデルを検索する場合は、反復子モードを使用します。反復子モードではモデルのコンパイルと検索の後にモデルを閉じますが、検索モードでは検索したすべてのモデルを開いたままにします。開いたモデルが多数あると、すべてのシステム メモリが消費され、レポート生成が遅くなる可能性があります。反復子モードは検索モードより遅いため、他のモデルをほとんど、またはまったく参照しないモデルを検索するには検索モードを使用します。

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

入力引数

すべて展開する

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

プロパティ

すべて展開する

検索の対象となるモデル コンテナー。次のいずれかの値として指定します。

  • Simulink モデル、サブシステム、またはモデル ブロックのハンドル

  • Simulink モデル、サブシステム、またはモデル ブロックへのパス

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

  • Stateflow Chart ブロックへのパス

  • Stateflow チャート ID

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

システム検索の深さ。Inf または正の整数として指定します。SearchDepth は、コンテナーでブロック線図またはチャートを検索する深さのレベルを指定します。すべてのレベルを検索するには、Inf を使用します。

属性:

GetAccess
public
SetAccess
public

データ型: double

マスク サブシステムを検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — コンテナー内のマスクされた Subsystem ブロックを検索します。指定された SearchDepth まで検索し、見つかったブロック線図またはチャートを検索結果に含めます。

  • 0 (false) — マスク サブシステムを検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

参照モデルを検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — ファインダーは、コンテナー内で参照されているモデルを検索します。指定された SearchDepth まで検索し、見つかったブロック線図またはチャートを検索結果に含めます。

  • 0 (false) — モデル参照を検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

参照サブシステムを検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — 参照サブシステムを検索します。

  • 0 (false) — 参照サブシステムを検索しません。

メモ

結果は、参照サブシステム ブロックの個々の出現ではなく、ソース サブシステム ブロックを示します。そのため、複数回参照される単一のサブシステムの結果は 1 つのみとなります。

属性:

GetAccess
public
SetAccess
public

データ型: logical

Simulink ライブラリ リンクを検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次のとおりです。

  • 1 (true) — Simulink ライブラリ リンクを検索します。IncludeMaskedSubsystems プロパティも true である場合、ファインダーは、コンテナー内にある、Simulink ライブラリの Subsystem ブロックおよびマスク Subsystem ブロックへのリンクを検索します。ファインダーは、指定された SearchDepth まで検索し、見つかったブロック線図またはチャートを検索結果に含めます。IncludeMaskedSubsystems プロパティが false の場合、ファインダーは Simulink ライブラリの Subsystem ブロックへのリンクのみを検索します。

  • 0 (false) — Simulink ライブラリ リンクを検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

ユーザー ライブラリ リンクを検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — ユーザー ライブラリ リンクを検索します。IncludeMaskedSubsystems プロパティも true である場合、ファインダーは、コンテナー内にある、ユーザー ライブラリの Subsystem ブロックおよびマスク Subsystem ブロックへのリンクを検索します。指定された SearchDepth まで検索し、見つかったブロック線図またはチャートを検索結果に含めます。IncludeMaskedSubsystems プロパティが false の場合、ファインダーはユーザー ライブラリの Subsystem ブロックへのリンクのみを検索します。

  • 0 (false) — ユーザー ライブラリ リンクを検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

コメントアウトされたブロック線図またはチャートを検索結果に含めるかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — コメントアウトされたブロック線図またはチャートを検索結果に含めます。

  • 0 (false) — コメントアウトされたブロック線図またはチャートを検索結果から除外します。

属性:

GetAccess
public
SetAccess
public

データ型: logical

ブロック線図を検索する際にバリアントを含めるかどうか。次のいずれかの値として指定します。

説明
"Active"アクティブなバリアント
"All"すべてのバリアント
"ActivePlusCode"アクティブなバリアントとコード バリアント

属性:

GetAccess
public
SetAccess
public

データ型: char | string

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

説明
"none"結果を並べ替えません。
"alphabetical"結果を名前のアルファベット順に並べ替えます。
"numBlocks"結果をシステム内のブロック数順に並べ替えます。並べ替えられたリストの最初のブロックには、最大数のブロックが含まれます。
"depth"結果をモデルの階層構造の深さ順に並べ替えます。並べ替えられたリストの最初のシステムは、階層内で最上位のシステムです。たとえば、モデルとそのサブシステムは、 myModelmyModel/subsystem1myModel/subsystem1/nestedSubststem の順に並べ替えられます。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

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

例: finder.Properties = {'Gain','5'}

属性:

GetAccess
public
SetAccess
public

データ型: cell

モデルを閉じるかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — ファインダーの next メソッドは、検索対象の次のモデルに移動する前に現在開いているモデルを閉じます。モデルを閉じることで、多数のモデルを参照するモデルを検索する際にメモリが過剰に消費されるのを防止します。

  • 0 (false) — 検索中にモデルを開いたままにします。

メモ

ファインダーの find メソッドはこのプロパティを無視し、すべての参照モデルを開いたままにします。このため、多数のモデル参照があるモデルの検索では find メソッドを使用すべきではありません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

メソッド

すべて展開する

すべて折りたたむ

sf_car モデル内のすべてのブロック線図のイメージを含むレポートを作成します。この例で使用するモデルにはモデル参照はありませんが、反復子モードを使用して構文を説明しています。

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

model_name = "sf_car";
load_system(model_name);
rpt = slreportgen.report.Report("output","pdf");
add(rpt, TitlePage(Title=model_name+" Systems"));

finder = DiagramFinder(model_name); 
while hasNext(finder)
    add(rpt,next(finder));
end    

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

sf_car モデルを開き、その Engine サブシステム内のすべてのブロック線図を検索します。サブシステムへのパスか、またはそのハンドルを使用します。その後、結果をレポートに含めることができます。

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

model_name = "sf_car";
load_system(model_name);

% Use path 
enginePath = "sf_car/Engine";
finder = slreportgen.finder.DiagramFinder(enginePath);
results = find(finder);

% or use handle
engineHandle = get_param("sf_car/Engine","Handle");
finder = slreportgen.finder.DiagramFinder(engineHandle);
results_enginehandle = find(finder);

特定のプロパティ値をもつ要素を検索するには、slreportgen.finder.DiagramElementFinder クラスのオブジェクトを使用します。f14 モデルを開き、値 Zw をもつ Gain ブロックをすべて検索します。

model = "f14"; 
openExample(model);
finder = slreportgen.finder.DiagramElementFinder(model)
finder.Properties = {"Gain","Zw"};
results = find(finder);

バージョン履歴

R2017b で導入