モデル アドバイザーのタスクおよびフォルダーのプログラムによるカスタマイズ
カスタマイズ ファイルの概要
sl_customization.m ファイルには、カスタム チェック、タスク、グループの登録と定義を行うための一連の関数が格納されています。sl_customization.m ファイルを設定するには、次の表のガイドラインに従ってください。
メモ
モデル アドバイザー ウィンドウに [製品別] フォルダーが表示されない場合、[設定] 、 [基本設定] ダイアログ ボックスで [製品別フォルダーを表示] を選択します。
| 関数 | 説明 | 必須またはオプション |
|---|---|---|
| 起動時にカスタム チェック、タスク、フォルダーを Simulink® カスタマイズ マネージャーに登録します。カスタム モデル アドバイザー チェックの定義を参照してください。 | モデル アドバイザーのカスタマイズに必要です。 |
1 つ以上のチェック定義 | カスタム チェックを定義します。カスタム モデル アドバイザー チェックの定義を参照してください。 | カスタム チェックに必要です。また、カスタム チェックを [製品別] フォルダーに追加する場合にも必要です。 |
1 つ以上のタスク定義 | カスタム タスクを定義します。カスタム タスクの定義を参照してください。 | カスタム チェックをモデル アドバイザーに追加する場合に必須です (チェックを [製品別] フォルダーに追加する場合を除きます)。モデル アドバイザーに追加するチェックごとに 1 つのタスクを作成します。 メモ カスタム チェックとカスタム チェック フォルダーは [製品別] フォルダーに追加することをお勧めします。その後、モデル アドバイザー構成エディターを使用して構成をカスタマイズします。詳細については、カスタム モデル アドバイザー チェックの定義およびモデル アドバイザー構成エディターを使用したモデル アドバイザーのカスタマイズを参照してください。
|
1 つ以上のグループ | カスタム グループを定義します。カスタム タスクの定義を参照してください。 | カスタム タスクをモデル アドバイザーの新しいフォルダーに追加する場合に必須です (新しいサブフォルダーを [製品別] フォルダーに追加する場合を除きます)。新しいフォルダーごとに 1 つのグループ定義を作成します。 メモ カスタム チェックとカスタム チェック フォルダーは [製品別] フォルダーに追加することをお勧めします。その後、モデル アドバイザー構成エディターを使用して構成をカスタマイズします。詳細については、カスタム モデル アドバイザー チェックの定義およびモデル アドバイザー構成エディターを使用したモデル アドバイザーのカスタマイズを参照してください。
|
タスクとフォルダーの登録
sl_customization 関数の作成
タスクとフォルダーをモデル アドバイザーに追加するには、sl_customization.m ファイルを MATLAB® パスで作成します。その後、MATLAB パス上の sl_customization.m ファイルに関数 sl_customization() を作成します。
ヒント
MATLAB パス上に 1 つを超える
sl_customization.mファイルを配置することができます。モデル アドバイザーをカスタマイズする
sl_customization.mファイルは、ルート MATLAB フォルダーやそのサブフォルダー (フォルダーを除く) には配置しないでください。配置した場合、モデル アドバイザーはファイルで指定されているカスタマイズを無視します。matlabroot/work
関数 sl_customization では、次の例のように、1 つの引数 (カスタマイズ マネージャー オブジェクト) を受け入れます。
function sl_customization(cm)
カスタマイズ マネージャー オブジェクトは、カスタム チェック、タスクおよびフォルダーを登録するためのメソッドを含みます。これらのメソッドを使用すると、この後の節で説明するように、用途に応じたカスタマイズを登録することができます。
タスクとフォルダーの登録
カスタマイズ マネージャーでは、次のメソッドを使用してカスタム タスクおよびフォルダーを登録することができます。
addModelAdvisorTaskFcn (@factorygroupDefinitionFcn)で定義したタスクが、モデル アドバイザーの [タスク別] フォルダーに登録されます。factorygroupDefinitionFcn引数は、factorygroupDefinitionFcnModelAdvisor.FactoryGroupクラスのインスタンスとしてモデル アドバイザーに追加するチェックを定義する関数のハンドルです。addModelAdvisorTaskAdvisorFcn (@taskDefinitionFcn)で定義されたタスクとフォルダーが、taskDefinitionFcnModelAdvisor.Root.publishメソッドまたはModelAdvisor.Groupクラスで指定されたモデル アドバイザーのフォルダーに登録されます。引数は、カスタム タスクおよびフォルダーを定義する関数のハンドルです。Simulink はこれらのチェックとフォルダーをtaskDefinitionFcnModelAdvisor.TaskまたはModelAdvisor.Groupクラスのインスタンスとしてモデル アドバイザーに追加します。
次の例では、カスタム タスクおよびフォルダーを登録する方法を示します。
function sl_customization(cm) % register custom factory group cm.addModelAdvisorTaskFcn(@defineModelAdvisorTasks); % register custom tasks. cm.addModelAdvisorTaskAdvisorFcn(@defineTaskAdvisor);
メモ
カスタム チェックを sl_customization.m 内に追加する場合は、関数 sl_customization にチェックを登録するためのメソッドを追加します。
カスタム タスクの定義
タスクを使用してチェックをカスタム フォルダーまたは複数のフォルダーに追加
カスタム タスクを使用して、チェックをモデル アドバイザーの複数のフォルダーや 1 つのカスタム フォルダーに追加することができます。ModelAdvisor.Task クラスの各インスタンスのプロパティを指定する 1 つ以上の関数でカスタム タスクを定義します。モデル アドバイザーに追加するカスタム タスクごとにこのクラスのインスタンスを 1 つ定義します。その後、カスタム タスクを登録します。この後の各節では、カスタム タスクの定義方法を説明します。
チェックを複数のフォルダーまたは 1 つのカスタム フォルダーに追加するには、次の手順に従います。
ModelAdvisor.Checkクラスを使用してチェックを作成します。チェックのタスク ラッパーを登録します。
まだ存在しないフォルダーにチェックを追加する場合は、
ModelAdvisor.Groupクラスを使用してフォルダーの登録と作成を行います。ModelAdvisor.Task.setCheckメソッドを使用してチェックをタスクに追加します。ModelAdvisor.Group.addTaskメソッドとタスク ID を使用してタスクを各フォルダーに追加します。
MathWorks チェックによるカスタム タスクの作成
MathWorks® チェックをカスタム タスクとして定義すると、そのチェックをカスタム フォルダーに追加できます。チェックをカスタム タスクとして追加する場合、チェックはチェック ID で識別します。
MathWorks チェック ID を検索するには、次の手順に従います。
階層で MathWorks チェックがあるフォルダーに移動します。
モデル アドバイザーの左側のペインで、チェックを選択します。
チェック名を右クリックして [ワークスペースにチェック ID を送信] を選択します。ID がコマンド ウィンドウに表示され、ベース ワークスペースに送信されます。
[コマンド ウィンドウ] からタスクとして追加するチェックの [チェック ID] を選択してコピーします。
タスクの表示と有効化
Visible、Enable、Value の各プロパティは、タスクの場合でもチェックの場合と同様に機能します。
タスクが表示される場所の指定
以下のガイドラインに従い、モデル アドバイザーでタスクが表示される場所を指定します。
タスクを [モデル アドバイザーのタスク マネージャー] の新しいフォルダーに配置するには、
ModelAdvisor.Groupクラスを使用します。タスクを [タスク別] フォルダーの新しいフォルダーに配置するには、
ModelAdvisor.FactoryGroupクラスを使用します。
タスク定義関数
次の例では、タスク定義関数を示します。この関数は 3 つのタスクを定義します。
% Defines Model Advisor tasks and a custom folder % Add checks to a custom folder using task definitions function defineTaskAdvisor mdladvRoot = ModelAdvisor.Root; % Define task that uses Sample Check 0: Check whose Results are Viewed as Detailed Result Collections MAT8 = ModelAdvisor.Task('com.mathworks.sample.TaskSample8'); MAT8.DisplayName='Example task using new check style (recommended style)'; MAT8.setCheck('com.mathworks.sample.Check0'); mdladvRoot.register(MAT8); % Define task that uses Sample Check 1: Informational check MAT1 = ModelAdvisor.Task('mathworks.example.task.configManagement'); MAT1.DisplayName = 'Informational check for model configuration management'; MAT1.Description = 'Display model configuration and checksum information.'; setCheck(MAT1, 'mathworks.example.configManagement'); mdladvRoot.register(MAT1); % Define task that uses Sample Check 2: Basic Check with Pass/Fail Status MAT2 = ModelAdvisor.Task('mathworks.example.task.unconnectedObjects'); MAT2.DisplayName = 'Check for unconnected objects'; setCheck(MAT2, 'mathworks.example.unconnectedObjects'); MAT2.Description = ['Identify unconnected lines, input ports, and output ' ... 'ports in the model or subsystem.']; mdladvRoot.register(MAT2); % Define task that uses Sample Check 3: Check with Subresults and Actions MAT3 = ModelAdvisor.Task('mathworks.example.task.optimizationSettings'); MAT3.DisplayName = 'Check safety-related optimization settings'; MAT3.Description = ['Check model configuration for optimization ' ... 'settings that can impact safety.']; MAT3.setCheck('mathworks.example.optimizationSettings'); mdladvRoot.register(MAT3); % Custom folder definition MAG = ModelAdvisor.Group('mathworks.example.ExampleGroup'); MAG.DisplayName = 'My Group'; % Add tasks to My Group folder MAG.addTask(MAT8); addTask(MAG, MAT1); addTask(MAG, MAT2); addTask(MAG, MAT3); % Add My Group folder to the Model Advisor under 'Model Advisor' (root) mdladvRoot.publish(MAG);
カスタム フォルダーの定義
カスタム フォルダーについて
フォルダーを使用すると、モデル アドバイザーのチェックを機能や用途別にグループ化できます。カスタム フォルダーは次の場所で定義します。
ModelAdvisor.FactoryGroupクラスの各インスタンスのプロパティを指定する出荷時グループ定義関数。ModelAdvisor.Groupクラスの各インスタンスのプロパティを指定するタスク定義関数。
モデル アドバイザーに追加するフォルダーごとにグループ クラスのインスタンスを 1 つ定義します。
カスタム フォルダーの追加
カスタム フォルダーを追加するには、次の手順に従います。
ModelAdvisor.GroupクラスまたはModelAdvisor.FactoryGroupクラスを使用してフォルダーを作成します。フォルダーを登録します。
カスタム フォルダーが表示される場所の指定
以下のガイドラインに従い、モデル アドバイザーでカスタム フォルダーが表示される場所を指定します。
新しいフォルダーを [モデル アドバイザーのタスク マネージャー] で定義するには、
ModelAdvisor.Groupクラスを使用します。新しいフォルダーを [タスク別] フォルダーで定義するには、
ModelAdvisor.FactoryGroupクラスを使用します。
メモ
新しいフォルダーを [製品別] フォルダーで定義するには、カスタム チェック内の ModelAdvisor.Root.publish メソッドを使用します。モデル アドバイザー ウィンドウに [製品別] フォルダーが表示されない場合、[設定] 、 [基本設定] ダイアログ ボックスで [製品別フォルダーを表示] を選択します。
グループ定義
次の例では、グループ定義を示します。この定義により、タスクが [モデル アドバイザー] ルートの直下にある [My Group] というフォルダーに配置されます。タスク定義関数にはこのグループ定義が含まれています。
% Custom folder definition MAG = ModelAdvisor.Group('mathworks.example.ExampleGroup'); MAG.DisplayName='My Group'; % Add tasks to My Group folder MAG.addTask(MAT8); MAG.addTask(MAT1); MAG.addTask(MAT2); MAG.addTask(MAT3); % Add My Group folder to the Model Advisor under 'Model Advisor' (root) mdladvRoot.publish(MAG);
次の例では、出荷時グループ定義関数を示します。この定義により、チェックが [タスク別] フォルダーにある [Demo Factory Group] というフォルダーに配置されます。
function defineModelAdvisorTasks mdladvRoot = ModelAdvisor.Root; % --- sample factory group rec = ModelAdvisor.FactoryGroup('com.mathworks.sample.factorygroup'); rec.DisplayName='Demo Factory Group'; rec.Description='Demo Factory Group'; rec.addCheck('com.mathworks.sample.Check0'); rec.addCheck('mathworks.example.configManagement'); rec.addCheck('mathworks.example.unconnectedObjects'); rec.addCheck('mathworks.example.optimizationSettings'); mdladvRoot.publish(rec); % publish inside By Task
参考
ModelAdvisor.Check | ModelAdvisor.FactoryGroup | ModelAdvisor.Group | ModelAdvisor.Task | ModelAdvisor.Procedure | publish