プログラムによる診断メッセージのレポート
関数 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 に記録されません。