Main Content

apply

モデルまたはアーキテクチャの解析に基づくインターフェイス ディクショナリ移行の変更の適用

R2022b 以降

説明

apply(migratorObj) は、関数 analyze によるモデルまたはアーキテクチャの解析に基づいてインターフェイス ディクショナリへの移行を適用します。解析により、インターフェイス ディクショナリへの移行対象となるモデルおよびデータ ディクショナリ内のデータ型とインターフェイスが識別されます。また、移行に影響する競合の問題も解析で識別されます。

すべて折りたたむ

Simulink.interface.dictionary.Migrator オブジェクトを作成した後、モデル内のデータ型とインターフェイスの内容を解析してインターフェイス ディクショナリへの移行対象を調べ、移行を適用できます。

データ ディクショナリにリンクされたモデル、またはインターフェイス ディクショナリにリンクされたアーキテクチャを選択します。図を参照してください。移行の目標は、内容をインターフェイス ディクショナリに追加し、モデルとディクショナリをリンクすることです。

ソースがリンクされていないデータ移行前の状態

Image of unlinked models, data dictionary, and interface dictionary

この例では、移行に際して競合するデータ型またはインターフェイスはありません。解析で次のように識別されます。

  • 移行するデータ型は MyAliasAliasOfMyAliasNonInterfaceBus、および LinkedAlias です。

  • 移行するインターフェイスは MyBusAnotherMyBus です。

アーキテクチャは SWC1SWC2、および Composition で構成されています。アーキテクチャで使用されているデータ ディクショナリ階層は dDictionary.sldd --> dLinkedDictionary.sldd です。

モデルを読み込み、ベース ワークスペース データを読み込みます。

load_system("mArchitectureWithDataDictionary");
load('hWorkspaceData.mat',...
    'MyBus','AnotherMyBus','NonInterfaceBus');

Simulink.interface.dictionary.Migrator オブジェクトを作成します。

myMigratorObj = Simulink.interface.dictionary.Migrator( ...
    "mArchitectureWithDataDictionary", ...
    'InterfaceDictionaryName',"interfaceDictionary.sldd");

移行の解析を実行し、解析結果を表示します。

analyze(myMigratorObj);

disp('Imported interfaces')
cellfun(@(x) x.Name,myMigratorObj.InterfacesToMigrate, ...
    'UniformOutput',false)
disp('Imported datatypes')
cellfun(@(x) x.Name,myMigratorObj.DataTypesToMigrate, ...
    'UniformOutput',false)
disp('Objects in conflict')
cellfun(@(x) strcat(x{1}.Name,' -> ',x{1}.Source), ...
    myMigratorObj.ConflictObjects,'UniformOutput',false)
disp('Unused objects')
cellfun(@(x) x.Name,myMigratorObj.UnusedObjects, ...
    'UniformOutput',false)

移行の解析結果を適用します。

apply(myMigratorObj);

インターフェイス ディクショナリを保存するには、関数 save を使用します。移行の解析を適用する前の状態に戻すには、関数 revert を使用します。

save(myMigratorObj);

移行 (適用ステップ) が完了すると、モデルとディクショナリがリンクされます。図を参照してください。

ソースがリンクされたデータ移行後の状態

Image of linked models, data dictionary, and interface dictionary

入力引数

すべて折りたたむ

Migrator オブジェクト。関数 Simulink.interface.dictionary.Migrator で指定します。

バージョン履歴

R2022b で導入

すべて展開する