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

Функции 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', 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', 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
rtwbuild('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')

Похожие темы