Real-Time Workshop User's Guide    

ドライバのパラメータ化

カスタマイズしたアイコン、ダイアログボックス、初期化コマンドを、マスキングすることによってS-Functionブロックに追加することが可能です。これは、Simulink環境で、デバイスドライバに対する使いやすいグラフィカルユーザインタフェースを提供します。

ユーザがハードウェア関連の変数を入力することにより、ドライバをパラメータ化することができます。図 17-7は、入力(ADC)ドライバのマスクされたデバイスドライバブロックのダイアログボックスを示します。Simulinkユーザは、デバイスアドレス、チャンネル数、その他の操作のパラメータを入力できます。

図 17-7: マスクされたADCドライバブロックのダイアログボックス

マスクされたS-Functionブロックは、パラメータのデータをマクロやその目的の関数を使ってダイアログボックスから取得します。

ダイアログからパラメータ値を取得するには、

  1. ssGetSFcnParamマクロを使ってダイアログボックスからパラメータにアクセスします。ssGetSFcnParamの引数は、ブロックのSimstructのポインタと希望するパラメータのインデックス(0ベース)です。たとえば、上記のダイアログから、Number of Channelsにアクセスするために、つぎの呼び出しを使います。
  2. パラメータは、単一の値しかなくても、タイプmxArrayの配列に格納されます。mxGetPr関数を使って入力のmxArray から特定の値を取得します。つぎのコードは、Number of Channelsパラメータの最初(そして唯一の)要素を抽出します。.

デバイスドライバブロックは、通常mdlInitializeSizes関数の入力パラメータを読み込んで有効にします。例題は、adc.cを参照してください。

デフォルトでは、S-Functionパラメータはチューニング可能です。パラメータをチューニング不可能にするには、mdlInitializeSizesルーチンでssSetSFcParamNotTunableマクロを使います。チューニング不可能なS-Functionパラメータは、生成されたコード内では定数となり性能を改良します。

マスクされたブロックの作成や使用法に関する詳細は、Using Simulink Writing S-Functionsマニュアルを参照してください。


 デバイスドライバの必要条件と制限 非インラインS-Functionデバイスドライバの作成