Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulink.interface.Dictionary

インターフェイス ディクショナリの管理

R2022b 以降

    説明

    Simulink.interface.Dictionary オブジェクトは、インターフェイス ディクショナリの管理に役立つメソッドを提供します。

    作成

    Simulink インターフェイス ディクショナリを作成し、そのディクショナリを表すオブジェクトを返すには、関数 Simulink.interface.dictionary.create を使用します。

    dictName = 'MyInterfaces.sldd';
    dictAPI = Simulink.interface.dictionary.create(dictName);

    インターフェイス ディクショナリを既に作成してある場合は、関数 Simulink.interface.dictionary.open を使用して既存のディクショナリを表す Simulink.interface.dictionary オブジェクトを作成できます。

    dictAPI = Simulink.interface.dictionary.open('MyInterfaces.sldd');

    プロパティ

    すべて展開する

    ディクショナリで定義されるデータ型。NameOwner のプロパティをもつ DataType オブジェクトの配列として指定します。

    ディクショナリに関連付けられた SLDD ファイルのファイル名。

    ディクショナリで定義されるインターフェイス。NameDescriptionElements、および Owner のプロパティをもつ DataInterface オブジェクトと ServiceInterface オブジェクトの配列として指定します。

    オブジェクト関数

    addAliasTypeSimulink インターフェイス ディクショナリへの Simulink エイリアス タイプの追加
    addDataInterfaceSimulink インターフェイス ディクショナリへのデータ インターフェイスの追加
    addEnumTypeSimulink インターフェイス ディクショナリへの列挙型の追加
    addNumericTypeSimulink インターフェイス ディクショナリへの Simulink 数値型の追加
    addPlatformMappingSimulink インターフェイス ディクショナリへの AUTOSAR Classic マッピングの追加
    addReference別のインターフェイス ディクショナリへの Simulink インターフェイス ディクショナリ参照の追加
    addServiceInterfaceSimulink インターフェイス ディクショナリへのサービス インターフェイスの追加
    addStructTypeSimulink インターフェイス ディクショナリへの Simulink.Bus で表される構造体型の追加
    addValueTypeSimulink インターフェイス ディクショナリへの値のタイプの追加
    closeSimulink インターフェイス ディクショナリへの開いている接続を閉じる
    discardChangesインターフェイス ディクショナリに対する変更の破棄
    findEntryByNameインターフェイス ディクショナリ内の指定したエントリ名に対応するオブジェクトの取得
    getDataTypeSimulink インターフェイス ディクショナリ内のデータ型の取得
    getDataTypeNamesSimulink インターフェイス ディクショナリ内のデータ型の名前の取得
    getInterfaceSimulink インターフェイス ディクショナリ内のインターフェイスのインターフェイス オブジェクトの取得
    getInterfaceNamesSimulink インターフェイス ディクショナリ内のインターフェイス名の cell 配列の取得
    getPlatformMappingディクショナリ内のプラットフォームのプラットフォーム マッピング オブジェクトの取得
    getReferences別のインターフェイス ディクショナリから参照されているインターフェイス ディクショナリの名前の cell 配列の取得
    importFromBaseWorkspaceSimulink オブジェクト定義のインポート
    importFromFileSimulink オブジェクト定義のインポート
    isDirtySimulink インターフェイス ディクショナリに未保存の変更があるかどうかの確認
    removeDataTypeSimulink インターフェイス ディクショナリからのデータ型の削除
    removeInterfaceSimulink インターフェイス ディクショナリからのインターフェイスの削除
    removeReference別のインターフェイス ディクショナリからの Simulink インターフェイス ディクショナリ参照の削除
    saveSimulink インターフェイス ディクショナリに対する変更の保存
    showスタンドアロン ビューアーでの Simulink インターフェイス ディクショナリの内容の表示
    showChanges比較ビューアーでの Simulink インターフェイス ディクショナリの内容に対する変更の表示

    すべて折りたたむ

    この例では、Simulink.interface.dictionary オブジェクトを作成し、ディクショナリの内容を構成します。この例では、AUTOSAR Classic のプラットフォーム関連要素の管理方法も示します。

    インターフェイス ディクショナリを作成します。

    dictName = 'MyInterfaces.sldd';
    dictAPI = Simulink.interface.dictionary.create(dictName);

    データ型を追加します。

    % Alias Types
    myAliasType1 = addAliasType(dictAPI,'aliasType',BaseType='single');
    myAliasType1.Name = 'myAliasType1';
    myAliasType1.BaseType = 'fixdt(1,32,16)';
     
    myAliasType2 = addAliasType(dictAPI,'myAliasType2');
    % can also use interface dict type objs
    myAliasType2.BaseType = myAliasType1;
     
    % Enum Type
    myEnumType1 = addEnumType(dictAPI,'myColor');
    myEnumType1.addEnumeral('RED','0','Solid Red');
    myEnumType1.addEnumeral('BLUE','1','Solid Blue');
    myEnumType1.DefaultValue = 'BLUE';
    myEnumType1.Description = 'I am a Simulink Enumeration';
    myEnumType1.StorageType = 'int16';
     
    % set base type of an alias type to be this enum object
    myAliasType3 = addAliasType(dictAPI,'myAliasType3');
    myAliasType3.BaseType = myEnumType1;
     
    % Value Type
    myValueType1 = addValueType(dictAPI,'myValueType1');
    myValueType1.DataType = 'int32';
    myValueType1.Dimensions = '[2 3]';
    myValueType1.Description = 'I am a Simulink ValueType';
    myValueType1.DataType = myEnumType1; % can also use interface dict type objs
     
    % Struct Type
    myStructType1 = addStructType(dictAPI,'myStructType1');
    structElement1 = myStructType1.addElement('Element1');
    structElement1.Type.DataType = 'single';
    structElement1.Type.Dimensions = '3';
    structElement2 = myStructType1.addElement('Element2');
    structElement2.Type = myValueType1;
    % or
    structElement2.Type = 'ValueType: myValueType1';
     
    % Nested Struct Type
    myStructType2 = addStructType(dictAPI,'myStructType2');
    myStructType2.Description = 'I am a nested structure';
    structElement = myStructType2.addElement('Element');
    structElement.Dimensions = '5';
    structElement.Type = myStructType1;
    % or
    structElement.Type = 'Bus: myStructType1';

    インターフェイスを追加し、データ要素の設計データを構成します。

    dataInterface1 = addDataInterface(dictAPI,'DataInterface');
     
    dataElm1 = addElement(dataInterface1,'DE1');
    dataElm1.Type = myValueType1;
     
    dataElm2 = addElement(dataInterface1,'DE2');
    dataElm2.Type = myStructType2;
    dataElm2.Dimensions = '4';
    dataElm2.Description = 'I am a data element with datatype = array of struct type';
     
    % data element with owned type
    dataElm3 = addElement(dataInterface1,'DE3');
    dataElm3.Type.DataType = 'single';
    dataElm3.Type.Dimensions = '10';
    dataElm3.Type.Minimum = '-5';
     
    dataInterface2 = addDataInterface(dictAPI,'DataInterface2');

    AUTOSAR Classic マッピングを追加します。

    platformMapping = addPlatformMapping(dictAPI,'AUTOSARClassic');

    AUTOSAR の通信インターフェイスとパッケージのプロパティを設定します。

    setPlatformProperty(platformMapping,dataInterface1,...
        Package='/Interface2',InterfaceKind='NvDataInterface');

    プラットフォーム固有のプロパティを取得します。

    [pNames, pValues] = getPlatformProperties(platformMapping,dataInterface1);

    AUTOSAR Classic のプラットフォーム関連要素の SwAddrMethod とキャリブレーション プロパティを管理します。これらの要素については、Simulink へのマッピングはありません。

    arObj = autosar.api.getAUTOSARProperties(dictName);
    addPackageableElement(arObj,'SwAddrMethod', ... 
        '/SwAddressMethods','VAR1','SectionType','Var');
    setPlatformProperty(platformMapping,dataElm1, ...
        SwAddrMethod='VAR1',SwCalibrationAccess='ReadWrite',... 
         DisplayFormat='%.3f');

    バージョン履歴

    R2022b で導入

    すべて展開する