Main Content

sl_customization.m によるビルド プロセスのカスタマイズ

Simulink® カスタマイズ ファイル sl_customization.m は、MATLAB® を使用してビルド プロセス インターフェイスをカスタマイズできるようにする機能です。MATLAB パス上にファイルがあり、開始時にそのファイル内で指定されているカスタマイズが Simulink セッションに適用されると、Simulink ソフトウェアは sl_customization.m ファイルを読み込みます。sl_customization.m カスタマイズ ファイルの詳細については、Simulink でのカスタマイズの登録を参照してください。

sl_customization.m ファイル

sl_customization.m ファイルを使用し、インストール固有のフック関数を登録してビルド プロセス中に呼び出すことができます。sl_customization.m を通して登録するフック関数は、システム ターゲット ファイル (STF) フック (STF_make_rtw_hook ファイルによるビルド プロセスのカスタマイズを参照) と、コード生成後のコマンド (コード生成後のビルド プロセスのカスタマイズを参照) を補足します。

下の図に、インストールレベルのフックと、ビルド プロセスをカスタマイズするために使用できる他の機能の間の関係を示します。

sl_customization.m を使用したビルド プロセス フック関数の登録

ビルド プロセス中に呼び出されるインストールレベルのフック関数を登録するには、sl_customization.m と呼ばれる MATLAB 関数を作成し、カスタマイズする Simulink インストールの MATLAB パス上にそれを含めます。関数 sl_customization は、1 つの引数を受け入れます。この引数は、カスタマイズ マネージャー オブジェクトのハンドルです。たとえば以下のようになります。

function sl_customization(cm)

カスタマイズ用の出発点として、関数 sl_customization は以下の代入ステートメントを使用して、最初に既定 (出荷時) のカスタマイズを取得しなければなりません。

hObj = cm.RTWBuildCustomizer;

それから、カスタマイズを登録するメソッドを呼び出します。カスタマイズ マネージャー オブジェクトは、ビルド プロセスのフック カスタマイズを登録するための以下のメソッドを含みます。

  • addUserHook(hObj, hookType, hook)

    hookType によって表現されるビルド プロセス段階に対して、hook によって指定される MATLAB フック スクリプトまたは関数を登録します。hookType 用の有効値は、'entry''before_tlc''after_tlc''before_make''after_make''exit' です。

このメソッドを使用して関数 sl_customization のインスタンスにインストール固有のフック関数を登録します。

Simulink ソフトウェアは、起動時に sl_customization.m ファイルを読み込みます。続いてファイルを変更する場合は、Simulink セッションを再び開始するか、コマンド ウィンドウで次のコマンドを入力し、その変更を有効にしなければなりません。

sl_refresh_customizations

フック関数 sl_customization.m に使用できる変数

以下の変数をフック関数 sl_customization.m に使用できます。

  • modelName ― Simulink モデルの名前 (全段階で有効)

  • dependencyObject ― 生成コードの依存関係を含んでいるオブジェクト ('after_make' 段階のみで有効)

フック スクリプトは有効な変数に直接アクセスすることができます。フック関数は引数として有効な変数を関数に渡すことができます。以下に例を示します。

hObj.addUserHook('after_make', 'afterMakeFunction(modelName,dependencyObject);');

sl_customization.m を使用したビルド プロセスのカスタマイズの例

ビルド プロセス カスタマイズ用の sl_customization.m の例に示す sl_customization.m ファイルでは addUserHook メソッドを使用してビルド プロセスの 'entry''after_tlc' の各段階で呼び出されるインストール固有のビルド プロセス フックを指定します。フック関数ソース コードの詳細については、CustomRTWEntryHook.m および CustomRTWPostProcessHook.m の例を参照してください。

例1 ビルド プロセス カスタマイズ用の sl_customization.m
function sl_customization(cm)
% Register user customizations

% Get default (factory) customizations
hObj = cm.RTWBuildCustomizer;

% Register build process hooks
hObj.addUserHook('entry', 'CustomRTWEntryHook(modelName);');
hObj.addUserHook('after_tlc', 'CustomRTWPostProcessHook(modelName);');

end
例2 CustomRTWEntryHook.m
function [str, status] = CustomRTWEntryHook(modelName)
str =sprintf('Custom entry hook for model ''%s.''',modelName);
disp(str)
status =1;
例3 CustomRTWPostProcessHook.m
function [str, status] = CustomRTWPostProcessHook(modelName)
str =sprintf('Custom post process hook for model ''%s.''',modelName);
disp(str)
status =1;

上記の 3 つのファイルをカスタマイズする Simulink インストールの MATLAB パスに含めると、コード化されたフック関数メッセージがビルド用に表示される出力内に表示されます。たとえば、ERT ベースのモデル UserDefinedDataTypes を開く場合、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインを開き、Ctrl+B を押してビルドを開始すると、以下のメッセージが表示されます。

>> UserDefinedDataTypes

### Starting build procedure for model: UserDefinedDataTypes
Custom entry hook for model 'UserDefinedDataTypes.'
Custom post process hook for model 'UserDefinedDataTypes.'
### Successful completion of build procedure for model: UserDefinedDataTypes
>> 

関連するトピック