Main Content

coder.dictionary.move

Migrate code generation definitions between models and data dictionaries

Description

example

move(sourceName,destinationName) moves code generation definitions, such as storage classes, from the Embedded Coder Dictionary in sourceName to the Embedded Coder Dictionary in destinationName. The definitions are removed from sourceName. To copy code definitions from one Embedded Coder Dictionary to another, use coder.dictionary.copy.

If a code generation definition in sourceName has the same name as a definition in destinationName, move moves the source entry into the destination, and then renames the entry in the destination.

Use this function to:

  • Move code generation definitions from a model to a Simulink® data dictionary. For more information, see Share Embedded Coder Dictionary Definition Between Models.

  • In a hierarchy of referenced Simulink data dictionaries, move the Embedded Coder Dictionary from one data dictionary to another. In a hierarchy of referenced dictionaries, only one dictionary can store an Embedded Coder Dictionary.

For general information about Embedded Coder Dictionaries and code generation definitions, see Define Storage Classes, Memory Sections, and Function Templates for Software Architecture.

Examples

collapse all

Create a storage class in the Embedded Coder Dictionary of the example model rtwdemo_roll. Then, move the storage class to the Embedded Coder Dictionary in rtwdemo_rtwecintro.

Open the model rtwdemo_roll and represent the Embedded Coder Dictionary by using a coder.Dictionary object. Use this object to access the Storage Classes section of the dictionary and represent the section by using a coder.dictionary.Section object.

rtwdemo_roll
coderDictionary = coder.dictionary.open('rtwdemo_roll');
storageClassesSect = getSection(coderDictionary, 'StorageClasses');

Add a storage class definition named MyStorageClass to the Storage Classes section. The storage class definition uses the default property settings.

newEntry = addEntry(storageClassesSect,'MyStorageClass')
newEntry = 

  Entry with properties:

          Name: 'MyStorageClass'
    DataSource: 'rtwdemo_roll'

Save a copy of rtwdemo_roll in your current folder. Saving the model saves the storage class in the Embedded Coder Dictionary.

Open the other model, rtwdemo_rtwecintro.

rtwdemo_rtwecintro

Move the contents of the Embedded Coder Dictionary in rtwdemo_roll to the Embedded Coder Dictionary in rtwdemo_rtwecintro.

coder.dictionary.move('rtwdemo_roll','rtwdemo_rtwecintro')

Open the Embedded Coder Dictionary for rtwdemo_rtwecintro.

In the Embedded Coder Dictionary window, on the Storage Classes tab, the storage class MyStorageClass appears. The storage class no longer exists in rtwdemo_roll.

Input Arguments

collapse all

Source model file or data dictionary, specified as a character vector or string scalar.

  • A model must be loaded (for example, by using load_system) or open.

    You do not need to specify the .slx file extension.

  • A dictionary must be open in the Model Explorer, in the current folder, or on the MATLAB® path.

    You must specify the .sldd file extension.

Example: 'myLoadedModel'

Example: 'myDictionary.sldd'

Data Types: char

Destination model file or data dictionary, specified as a character vector or string scalar.

  • A model must be loaded (for example, by using load_system) or open.

    You do not need to specify the .slx file extension.

  • A dictionary must be open in the Model Explorer, in the current folder, or on the MATLAB path.

    You must specify the .sldd file extension.

Example: 'myLoadedModel'

Example: 'myDictionary.sldd'

Data Types: char

Introduced in R2018a