プログラムによる診断メッセージのレポート
関数 sldiagviewer
を使用して、診断ビューアーで診断メッセージを生成、表示および記録できます。
これらの関数を使用すると、プログラムで次のことが可能になります。
新しい診断の段階を作成する。
診断ビューアーで診断メッセージをレポートする。
診断メッセージのログをテキスト ファイルに記録する。
診断の各段階の作成
診断ビューアーは、さまざまな段階でエラー、警告、および情報のメッセージを整理してDiagnostic Message Paneに表示します。各段階は、モデルの読み込み、シミュレーション、ビルド、ブロック線図の更新などの実行時操作を表します。追加の操作が生じると、新しい段階が作成されます。複数の操作が含まれている場合、子段階が作成されて階層構造が形成されます。
段階を初期化し、今後の実行時操作のために診断メッセージのログを記録するには、関数 sldiagviewer.createStage
を使用して段階オブジェクトを作成します。現在の段階を終了せずに新しい段階オブジェクトを作成すると、新しい段階は現在の段階の子段階になります。
段階を終了するには、段階オブジェクトを閉じます。親段階オブジェクトを削除すると、診断ビューアーで親およびその子段階が閉じます。
診断メッセージを表示する段階の作成
sldiagviewer.createStage
を使用して、診断メッセージを診断ビューアーに表示する段階を作成します。
モデル DiagnosticDemo
を読み込みます。
model = "DiagnosticDemo";
load_system(model);
診断メッセージを表示する段階を作成します。
myStage = sldiagviewer.createStage("Analysis","ModelName",model);
段階を作成した後、Analysis
段階の診断ビューアーで次の Simulink® 操作の診断をレポートできます。詳細については、Diagnostic Viewerを参照してください。
診断メッセージのレポート
診断ビューアーでエラー、警告、情報のメッセージをそれぞれレポートするには、関数 sldiagviewer.reportError
、sldiagviewer.reportWarning
、および sldiagviewer.reportInfo
を使用します。
必要に応じて、診断メッセージを生成するコンポーネントまたは製品の名前 (Simulink
、Model Advisor
、Stateflow
など) を指定できます。
エラー メッセージのレポート
sldiagviewer.reportError
を使用して、診断ビューアーでエラー メッセージを表示します。
モデル DiagnosticDemo
を読み込みます。
model = "DiagnosticDemo";
load_system(model);
診断メッセージを表示する段階を作成します。
myStage = sldiagviewer.createStage("Analysis","ModelName",model);
try
ブロック内にエラーを導入し、結果として発生したエラーを catch
ブロックでキャッチします。
try i = p; catch error end
診断ビューアーでエラー メッセージをレポートします。
output = sldiagviewer.reportError(error)
モデルの診断ウィンドウが開き、Analysis
段階にエラー メッセージが赤で表示されます。
ファイルへの診断メッセージのログ記録
関数 sldiagviewer.diary
を使用して、診断メッセージのログを記録し、テキスト ファイルに情報を蓄積します。
既定では、sldiagviewer.diary
は、システムの既定の文字エンコードを使用して、現在のフォルダーにあるテキスト ファイル diary.txt
に診断メッセージのログを記録します。メッセージのログを記録するファイル名を指定したり、文字エンコードを UTF-8 に設定したりすることもできます。詳細については、特定のファイルへの診断メッセージのログ記録およびログ ファイルの文字エンコードの指定を参照してください。現在のログ ファイルのログ状態を on
または off
に切り替えることもできます。
ファイルのログ状態の切り替え
sldiagviewer.diary
を使用してファイルでログを作成し、ログ状態を切り替えます。
ログ ファイル diary.txt
を作成し、ログ記録をオンにします。
sldiagviewer.diary
モデル DiagnosticDemo
を読み込みます。
model = "DiagnosticDemo";
open_system(model);
モデルにエラーを導入します。
set_param("DiagnosticDemo/Gain","Gain","xyz");
モデルのシミュレーションを実行します。
set_param(model,"SimulationCommand","Start")
エラーのログが diary.txt
に記録されます。
モデルにエラーを再度導入します。
set_param("DiagnosticDemo/Gain","Gain","abc");
ログ記録をオフにします。
sldiagviewer.diary("off")
モデルのシミュレーションを実行します。
set_param(model,"SimulationCommand","Start")
エラーのログは diary.txt
に記録されません。