Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

FunctionPortSpecification

C Caller ブロックのプロパティのクエリと構成

説明

C Caller ブロックの関数定義と戻り引数をクエリして構成します。C Caller ブロックの入力引数をプログラムで構成します。

作成

myCCallerConfigObj = get_param(gcb, 'FunctionPortSpecification') は、選択された C Caller ブロックについての C Caller ブロックの構成オブジェクトを作成します。

プロパティ

すべて展開する

モデルでの C 関数の入力の C Caller ブロックへのマッピングを表示します。このプロパティはコマンド ラインを使用して編集することはできません。C 関数のマッピングを編集するには、C Caller ブロックのソース コードを編集します。

例: real_T add(real_T u1, real_T u2);

データ型: char

関数の入力引数のリストをFunctionArgument オブジェクトで返します。

スカラーまたは空のFunctionArgument オブジェクトを返します。

データ型: char

FunctionArgument オブジェクト

FunctionArgument は、C Caller ブロックの端子指定情報をプログラムで保持するクラスです。FunctionArgument オブジェクトには次のプロパティがあります。

  1. Name — ソース コード内の変数の名前。文字ベクトルとして指定します。このプロパティは読み取り専用です。

  2. PortNumber — 編集された InputArgument の端子番号。uint32 として指定します。このプロパティは読み取り専用です。

  3. Size — Simulink® 端子の次元のサイズ。文字ベクトルとして指定します。関数の定義で許容されている場合、このプロパティを編集できます。

  4. Type — 指定された端子の Simulink データ型。文字ベクトルとして指定します。関数の定義で許容されている場合、このプロパティを編集できます。

  5. Label — Simulink ブロックの端子ラベル。文字ベクトルとして指定します。たとえば次のようにして、端子ラベルをプログラムで変更できます。

    myCCallerObj.my_CCaller.InputArguments(1).Label = 'inputport1'
    my_CCallerObj = 
    
      FunctionPortSpecification with properties:
    
            CPrototype: 'real_T add(real_T u1, real_T u2);'
        InputArguments: [1×2 Simulink.CustomCode.FunctionArgument]
        ReturnArgument: [1×1 Simulink.CustomCode.FunctionArgument]

  6. Scope — Simulink スコープの入力引数へのマッピング。文字ベクトルとして指定します。変数が定数の修飾子として定義されている場合、引数は入力またはパラメーターとすることができます。定数の修飾子がない場合、出力引数を inputinputoutput、または parameter に変更できます。スコープが上記のシナリオのいずれかに適合する場合、プログラムで変更できます。

    my_CCallerObj.InputArguments(1).Scope = 'parameter'
    my_CCallerObj = 
    
      FunctionPortSpecification with properties:
    
            CPrototype: 'extern real_T add(real_T u1, real_T u2);'
        InputArguments: [1×2 Simulink.CustomCode.FunctionArgument]
        ReturnArgument: [1×1 Simulink.CustomCode.FunctionArgument]

C Caller 構成オブジェクトを作成

この例では、'slexCCallerExample' のデモ モデルを使用して、C Caller 構成オブジェクトを作成します。

my_CCallerObj = get_param('slexCCallerExample/C Caller','FunctionPortSpecification')
my_CCallerObj = 

  FunctionPortSpecification with properties:

        CPrototype: 'real_T add(real_T u1, real_T u2);'
    InputArguments: [1×2 Simulink.CustomCode.FunctionArgument]
    ReturnArgument: [1×1 Simulink.CustomCode.FunctionArgument]
1 つ目の入力端子の FunctionArgument オブジェクトを作成します。
inargone = my_CCallerObj.InputArguments(1)
inargone = 

  FunctionArgument with properties:

          Name: 'u1'
    PortNumber: 1
          Size: '1'
          Type: 'double'
         Label: 'u1'
         Scope: 'Parameter'
1 つ目の入力端子のラベルを変更します。
inargone.Label = 'inputport1'
inargone = 

  FunctionArgument with properties:

          Name: 'u1'
    PortNumber: 1
          Size: '1'
          Type: 'double'
         Label: 'inputport1'
         Scope: 'Parameter'

R2019b で導入