Программно сообщайте диагностические сообщения

The sldiagviewer функции позволяют вам генерировать, отображать и регистрировать диагностические сообщения в Diagnostic Viewer.

Можно использовать эти функции для программного сообщения диагностики:

  • Функция для создания сцены: sldiagviewer.createStage

  • Функции для сообщения диагностических сообщений:

    • sldiagviewer.reportError

    • sldiagviewer.reportWarning

    • sldiagviewer.reportInfo

  • Функция для регистрации диагностики: sldiagviewer.diary

Создайте диагностические этапы

В Diagnostic Viewer ошибки, предупреждения и информационные сообщения отображаются в группах, основанных на операции, таких как загрузка модели, симуляция и сборка. Эти группы называются этапами. The sldiagviewer.createStage функция позволяет вам создавать этапы. Можно также создать дочерние этапы для объекта рабочей области. Объект родительского этапа должен быть активен, чтобы создать дочерний этап. Когда вы создаете объект сцены, Simulink® инициализирует каскад. Когда вы закрываете объект рабочей области, Simulink заканчивает рабочую область. Если вы удаляете родительский объект этапа, соответствующий родительский элемент и его дочерний этап закрываются в Diagnostic Viewer. Синтаксис создания рабочей области:

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

В этом синтаксисе,

  • StageName задает имя этапа и является обязательным аргументом, например 'Analysis'.

  • Используйте 'ModelName', ModelNameValue пара, чтобы задать имя модели рабочей области, например 'ModelName', 'vdp'. Все дочерние этапы наследуют имя модели от своего родительского элемента.

Пример для создания рабочей области

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

Сообщения диагностики отчетов

Можно использовать sldiagviewer функции для сообщения об ошибках, предупреждениях или информационных сообщениях в Diagnostic Viewer. Синтаксисы для отчетов о диагностических сообщениях:

  • 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: Перехватывает информацию сборки, предупреждения и ошибки, переданные в Diagnostic Viewer, и регистрирует их в текстовом файле 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

sldiagviewer.diary('C:\MyLogs\log1.txt') % Make sure you have write permission for this location

% 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.
open_system('sldemo_fuelsys') % Any operation you do after the previous command will not be logged
slbuild('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')

Похожие темы