Main Content

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

関数 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.reportErrorsldiagviewer.reportWarning、および sldiagviewer.reportInfo を使用します。

必要に応じて、診断メッセージを生成するコンポーネントまたは製品の名前 (SimulinkModel AdvisorStateflow など) を指定できます。

エラー メッセージのレポート

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 に記録されません。

参考

ツール

関連するトピック