Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

プログラムによる診断メッセージのレポート

関数 sldiagviewer を使用して、診断ビューアーで診断メッセージを生成、表示および記録できます。

次の関数を使用して診断メッセージをプログラムでレポートできます。

  • 段階を作成する関数: sldiagviewer.createStage

  • 診断メッセージをレポートする関数:

    • sldiagviewer.reportError

    • sldiagviewer.reportWarning

    • sldiagviewer.reportInfo

  • 診断を記録する関数: sldiagviewer.diary

診断の各段階の作成

診断ビューアーでは、エラー、警告および情報メッセージがモデルの読み込み、シミュレーション、ビルドなどの操作に基づいてグループごとに表示されます。これらのグループは段階と呼ばれます。関数 sldiagviewer.createStage を使用して段階を作成できます。段階オブジェクトに対して子段階を作成することもできます。子段階を作成するには親段階オブジェクトがアクティブでなければなりません。段階オブジェクトを作成すると、Simulink® は段階を初期化します。段階オブジェクトを閉じると、Simulink は段階を終了します。親段階オブジェクトを削除すると、診断ビューアーで対応する親およびその子段階が閉じます。段階を作成する構文は次のとおりです。

stageObject = sldiagviewer.createStage(StageName,'ModelName',ModelNameValue)

この構文では、

  • StageName は段階の名前を指定する必須の引数です (たとえば 'Analysis')。

  • 'ModelName'ModelNameValue のペアを使用して段階のモデル名を指定します (たとえば、'ModelName''vdp')。子段階はすべて親からモデル名を継承します。

段階の作成の例

my_stage = sldiagviewer.createStage('Analysis','ModelName','vdp');

診断メッセージのレポート

関数 sldiagviewer を使用して、診断ビューアーでエラー、警告または情報メッセージをレポートできます。診断メッセージをレポートするための構文は次のとおりです。

  • sldiagviewer.reportError(Message):エラー メッセージをレポートします。

  • sldiagviewer.reportWarning(Message):警告をレポートします。

  • sldiagviewer.reportInfo(Message):情報メッセージをレポートします。

Message は、エラー、警告またはビルド情報を表す必須の引数です。Message には次の形式の値を指定できます。

  • 文字列

  • MSLException または MException オブジェクト

必要に応じて、構文で 'Component' 引数とその対応する値を使用して、メッセージを生成するコンポーネントまたは製品を指定できます (たとえば、'Simulink' および 'Stateflow')。

診断のレポートの例

% Create a Stage to display all the messages

my_stage = sldiagviewer.createStage('Analysis', 'ModelName', 'vdp');

% Catch the error introduced in vdp as an exception.

try
sim('vdp');
catch error
% Report the caught exception as warning

sldiagviewer.reportWarning(error);
end

% Report a custom info message to Diagnostic Viewer

sldiagviewer.reportInfo('My Info message');

診断メッセージの記録

関数 sldiagviewer.diary を使用して、シミュレーションの警告、エラーおよびビルド情報をファイルに記録できます。ログ ファイルを生成するための構文は次のとおりです。

  • sldiagviewer.diary:診断ビューアーに送信されたビルド情報、警告およびエラーを取得し、現在のディレクトリ内のテキスト ファイル diary.txt に記録します。

  • sldiagviewer.diary(filename):filename によって指定されるテキスト ファイルのログ状態を切り替えます。

  • sldiagviewer.diary(toggle):ログ機能を切り替えます。有効な値は 'on' および 'off' です。ログ ファイル名を指定しない場合、切り替え設定はログ用に最後に指定したファイル名または diary.txt ファイルに適用されます。

  • sldiagviewer.diary(filename,'UTF-8'):ログ ファイルの文字エンコードを指定します。

この構文では、

  • filename はデータの記録先のファイルを指定します。

  • toggle では、ログの状態を 'on' または 'off' に指定します。

診断メッセージの記録

% Start logging build information and simulation warnings and errors to diary.txt

sldiagviewer.diary
open_system('vdp')
set_param('vdp/Mu','Gain', 'xyz') 
set_param('vdp', 'SimulationCommand', 'Start') 
% This introduces an error and do UI simulation which you can see in the diary log

% Open diary.txt to view logs.

%### Starting build procedure for model: vdp
%### Build procedure for model: 'vdp' aborted due to an error.
%...

% Set up logging to a specific file
% Make sure you have write permission for this location

sldiagviewer.diary('C:\MyLogs\log1.txt') 

% Switch the logging state of a file

sldiagviewer.diary('C:\MyLogs\log2.txt') % Switch on logging and specify a log file.
open_system('vdp')
set_param('vdp/Mu', 'Gain', 'xyz') 
set_param('vdp', 'SimulationCommand', 'Start')

sldiagviewer.diary('off') % Switch off logging.
openExample('simulink_automotive/ModelingAFaultTolerantFuelControlSystemExample',...
  'supportingfile','sldemo_fuelsys'); 
% Any operation you do after the previous command will not be logged
sim('sldemo_fuelsys')

sldiagviewer.diary('on') % Resume logging in the previously specified log file.

% Specify the filename to log to and character encoding to be used
sldiagviewer.diary('C:\MyLogs\log3.txt','UTF-8')

関連するトピック