Main Content

analyze

Analyze a model or an architecture for migration to interface dictionary

Since R2022b

Description

example

analyze(migratorObj) analyzes a model or an architecture for migration to an interface dictionary. The analysis identifies the data types and interfaces in the model and data dictionaries for migration to an interface dictionary. The analysis also identifies conflict issues that affect migration.

Examples

collapse all

After creating a Simulink.interface.dictionary.Migrator object, you can analyze data type and interface content in the model for migration to the interface dictionary and apply the migration.

Select a model that is linked to a data dictionary or an architecture that is linked to an interface dictionary. See figure. The goal of the migration is to add content to the interface dictionary and link the models and dictionaries.

Before Linking Sources and Data Migration

Image of unlinked models, data dictionary, and interface dictionary

In this example migration, there are no conflicting data types or interfaces. The analysis identifies:

  • The data types to migrate are MyAlias, AliasOfMyAlias, NonInterfaceBus, and LinkedAlias.

  • The interfaces to migrate are MyBus and AnotherMyBus.

The architecture consists of SWC1, SWC2, and Composition. The architecture uses a data dictionary hierarchy of dDictionary.sldd --> dLinkedDictionary.sldd.

Load the model and load the base workspace data.

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

Create a Simulink.interface.dictionary.Migrator object.

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

Perform migration analysis and display analysis results.

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 migration analysis results.

apply(myMigratorObj);

To save the interface dictionary, use the save function. To revert applying the migration analysis, use the revert function.

save(myMigratorObj);

After migration (the apply step), the models and dictionaries are linked. See figure.

After Sources have been linked and data has been migrated

Image of linked models, data dictionary, and interface dictionary

Input Arguments

collapse all

Migrator object, specified by a Simulink.interface.dictionary.Migratorfunction.

Version History

Introduced in R2022b

expand all