メインコンテンツ

find

モデル コード マッピングのカテゴリに対するモデル要素の取得

    説明

    modelElementsFound = find(coderMapObj,elementCategory) は指定されたカテゴリのモデル コード マッピングの要素をオブジェクトの配列として返します。

    modelElementsFound= find(coderMapObj,elementCategory,Name=Value) は指定されたプロパティと値の条件に一致する指定されたカテゴリのモデル コード マッピングの要素を返します。

    すべて折りたたむ

    プログラム インターフェイスを使用して、コード マッピングに関連するモデル要素を検出します。

    コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[入力端子] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。

    モデル CoderMapAPI を開きます。

    simulinkModel = "CoderMapAPI";
    open_system(simulinkModel);

    このモデルのコード マッピング オブジェクトを取得します。

    codeMapObj = coder.mapping.api.get(simulinkModel);

    ImportedExtern ストレージ クラスの端子と ImportedExternPointer ストレージ クラスの入力端子の入力端子ハンドルを検出します。

    importedExternInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExtern")'
    importedExternInportHandles = 2×1
    
      151.0038
      153.0037
    
    
    importedExternPointerInportHandles = find(codeMapObj,"Inports",StorageClass="ImportedExternPointer")'
    importedExternPointerInportHandles = 2×1
    
      155.0032
      157.0024
    
    

    入力端子の名前を取得します。

    importedExterInportNames = string(get_param(importedExternInportHandles,"Name"))
    importedExterInportNames = 2×1 string
        "in_port_1"
        "in_port_2"
    
    
    importedExternPointerInportNames = string(get_param(importedExternPointerInportHandles,"Name"))
    importedExternPointerInportNames = 2×1 string
        "in_port_3"
        "in_port_4"
    
    

    モデルからコードを生成します。

    evalc("slbuild(simulinkModel)");

    ImportedExtern および ImportedExternPointer ストレージ クラスのルートレベルの端子は、モデルの生成されたプライベート ヘッダー ファイル内の別個のセクションで宣言されます。

    プライベート ヘッダー ファイルの名前を格納します。

    priv_h_file = fullfile(simulinkModel+"_grt_rtw",simulinkModel+"_private.h")
    priv_h_file = 
    "CoderMapAPI_grt_rtw/CoderMapAPI_private.h"
    

    以下に、ヘッダー ファイル内のルートレベルの端子の宣言を示します。

    /* Imported (extern) block signals */
    extern real_T in_port_1;               /* '<Root>/in_port_1' */
    extern real_T in_port_2;               /* '<Root>/in_port_2' */
    
    /* Imported (extern) pointer block signals */
    extern real_T *in_port_3;              /* '<Root>/in_port_3' */
    extern real_T *in_port_4;              /* '<Root>/in_port_4' */
    

    端子のストレージ クラスは関数 find に渡したストレージ クラスと一致しています。

    ヘッダー ファイルを開くには、MATLAB® コマンド ウィンドウに次のコマンドを入力します。

    edit(priv_h_file)
    

    モデル キャンバスおよび [コード マッピング] エディターで強調表示された ImportedExtern の入力端子を確認するには、次のコマンドを入力します。

    arrayfun(@(pHandle) set_param(pHandle,Selected="on"),importedExternInportHandles);

    プログラム インターフェイスを使用して、モデルの既定の設定にマッピングされた関数カスタマイズ テンプレートをもつエントリポイント関数を検索し、テンプレートを既定のカスタマイズ テンプレートに再マッピングします。

    コマンドが [コード マッピング] エディターにどのように反映されるかを対話的に確認するには、[Functions] タブが選択された状態で [コード マッピング] エディターが開いていることを確認してください。[コード マッピング] エディターを開く方法については、コード マッピング エディター – C を開くを参照してください。

    モデル ECoderMapAPI を開きます。

    simulinkModel = "ECoderMapAPI";
    open_system(simulinkModel);

    モデルのコード マッピング オブジェクトを取得します。

    codeMapObj = coder.mapping.api.get(simulinkModel);

    コード マッピング オブジェクトを使用して、モデルの既定の設定にマッピングされた関数カスタマイズ テンプレートをもつすべてのエントリポイント関数を検索します。次に、見つかった関数の名前を表示します。

    funcObjs = find(codeMapObj,"Functions",FunctionCustomizationTemplate="Model default");
    disp(funcObjs')
        "Initialize"
        "Terminate"
        "Periodic:D1"
    

    見つかった関数の関数カスタマイズ テンプレートを Default にマッピングします。

    setFunction(codeMapObj,funcObjs,FunctionCustomizationTemplate="Default");

    find 関数を使用して、モデルの既定の設定にマッピングされたカスタマイズ テンプレートをもつエントリポイント関数があるかどうかをテストします。空のリストが返されるはずです。

    find(codeMapObj,"Functions",FunctionCustomizationTemplate="Model default")
    ans = 
    
      0×0 empty string array
    

    見つかった関数の関数カスタマイズ テンプレートをモデルの既定の設定に再度マッピングします。

    setFunction(codeMapObj,funcObjs,FunctionCustomizationTemplate="Model Default");

    入力引数

    すべて折りたたむ

    関数 coder.mapping.api.get の呼び出しで返されるコード マッピング オブジェクト

    例: coderMapObj = coder.mapping.api.get(bdroot)

    モデル コード マッピングで検索するモデル要素のカテゴリ。次の値のいずれかとして指定します。

    • "DataStores"

    • "DataTransfers"

    • "ExportedFunctions"

    • "Functions"

    • "FunctionCallers"

    • "Inports"

    • "ModelParameters"

    • "ModelParameterArguments"

    • "ModelVariantControls"

    • "ModelVariantControlArguments"

    • "ModelVariantVariables"

    • "Outports"

    • "PartitionFunctions"

    • "PartitionUpdateFunctions"

    • "PeriodicFunctions"

    • "PeriodicUpdateFunctions"

    • "ResetFunctions"

    • "Signals"

    • "SimulinkFunctions"

    • "States"

    名前と値の引数

    すべて展開する

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    例: find(coderMapObj,StorageClass="Bitfield")

    データ インターフェイス

    すべて展開する

    検索条件に含めるデータ要素のストレージ クラスの名前。ストレージ クラスは、モデルの内部 Embedded Coder® ディクショナリ、またはモデルに付加されている共有 Embedded Coder ディクショナリのいずれかで定義されます。

    使用可能なストレージ クラスのリストは、指定したカテゴリによって異なります。

    コード ジェネレーターが生成されたコード内でデータ要素を識別するために使用する名前。"Auto" 以外のストレージ クラスに適用されます。

    データ型: char | string

    データ要素および外部コードによって読み取られるグローバル データの定義を含む C ソース ファイルのファイル名。ストレージ クラス ConstConstVolatileExportToFile、および Volatile に適用されます。

    データ型: char | string

    Embedded Coder ディクショナリで定義されている、モデルの関数カスタマイズ テンプレートの名前。

    データ型: char | string

    モデル用に生成されたエントリポイント関数の名前。

    データ型: char | string

    データ要素が生成コードで呼び出す get 関数の名前。ストレージ クラス GetSet に適用されます。

    データ型: char | string

    データ要素および外部コードによって読み取られるグローバル データの宣言を含む C ヘッダー ファイルのファイル名。ストレージ クラス ConstConstVolatileDefineExportToFileGetSetImportedDefineImportFromFile、および Volatile に適用されます。

    データ型: char | string

    Embedded Coder ディクショナリで定義されたモデル用のメモリ セクションの名前。

    データ型: char | string

    同じモデルの階層構造の他のモデルで使用されるグローバル データを所有するモデルの名前。グローバル データ定義は、所有者モデル用に生成されたコードに含まれます。ストレージ クラス ConstConstVolatileExportToFile、および Volatile に適用されます。

    データ型: char | string

    モデル コンフィギュレーション パラメーター [配列のレイアウト][行優先] に設定されている場合、生成されたコード内で多次元配列として表されるデータ要素の次元を保持するかどうかを示すフラグ。ストレージ クラス ConstConstVolatileExportToFileFileScopeGetSetImportFromFileLocalizable、および Volatile に適用されます。

    データ型: logical

    データ要素が生成コードで呼び出す set 関数の名前。ストレージ クラス GetSet に適用されます。

    データ型: char | string

    コード ジェネレーターが生成されたコード内でデータ要素の構造体を識別するために使用する名前。ストレージ クラス Bitfield および Struct に適用されます。

    データ型: char | string

    モデルの Embedded Coder ディクショナリで定義されたストレージ クラス プロパティ。指定可能な値は、ストレージ クラスの定義に応じて異なります。

    サービス インターフェイス

    すべて展開する

    Embedded Coder ディクショナリで定義されている受信側サービス インターフェイスの名前を含む string または文字ベクトル。ターゲット環境内で、コンポーネントはターゲット プラットフォームの受信側サービスを呼び出すことで他のコンポーネントからデータを受信します。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。

    受信側サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Sender and Receiver Service Interfaces for Model Inports and Outportsを参照してください。

    データ型: char | string

    Embedded Coder ディクショナリで定義されている送信側サービス インターフェイスの名前を含む string または文字ベクトル。ターゲット環境内で、コンポーネントはターゲット プラットフォームの送信側サービスを呼び出すことで他のコンポーネントにデータを送信します。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。

    送信側サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Sender and Receiver Service Interfaces for Model Inports and Outportsを参照してください。

    データ型: char | string

    Embedded Coder ディクショナリで定義されている測定サービス インターフェイスの名前を含む string または文字ベクトル。信号、状態、およびデータ ストアの測定サービス インターフェイスを構成することで、データを測定用に生成コードで保持できます。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。状態のデータをコードで保持する必要がない場合は、"Not measured" を指定します。

    測定サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Measurement Service Interfaces for Signals, States, and Data Storesを参照してください。

    データ型: char | string

    Embedded Coder ディクショナリで定義されているパラメーター調整サービス インターフェイスの名前を含む string または文字ベクトル。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。

    パラメーター調整サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Parameter and Parameter Argument Tuning Service Interfaces for Model Parameters and Model Parameter Argumentsを参照してください。

    データ型: char | string

    Embedded Coder ディクショナリで定義されているパラメーター引数調整サービス インターフェイスの名前を含む string または文字ベクトル。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。

    パラメーター引数調整サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Parameter and Parameter Argument Tuning Service Interfaces for Model Parameters and Model Parameter Argumentsを参照してください。

    データ型: char | string

    Embedded Coder ディクショナリで定義されているタイマー サービス インターフェイスの名前を含む string または文字ベクトル。ディクショナリの既定値を使用するには、"Dictionary default" を指定します。

    このプロパティは、エクスポートされた関数にのみ適用できます。

    タイマー サービス インターフェイスを構成するには、サービス インターフェイス構成を定義する Embedded Coder ディクショナリがモデルに接続されていなければなりません。詳細については、Configure Timer Service Interfacesを参照してください。

    データ型: char | string

    出力引数

    すべて折りたたむ

    検出されたモデル要素。指定した要素カテゴリに応じて string 配列またはハンドル配列として返されます。

    要素カテゴリ返されるオブジェクトのタイプ
    "Inports""Outports""States"ブロック ハンドル
    "Signals"端子ハンドル
    "DataStores"ブロック ハンドル
    "ModelParameters"モデル パラメーター名
    "ModelParameterArguments"モデル パラメーター引数名
    "ModelVariantControls"Simulink.VariantControl オブジェクト名
    "ModelVariantControlArguments"Simulink.VariantControl モデル引数名
    "ModelVariantVariables"Simulink.VariantVariable オブジェクト名
    "ExportedFunctions""Functions""PartitionFunctions""PartitionUpdateFunctions""PeriodicFunctions""PeriodicUpdateFunctions""ResetFunctions"、および "SimulinkFunctions"関数名

    バージョン履歴

    R2020b で導入

    すべて展開する