Обозначение


Описание

Блок обеспечивает возможность сбора логов по заданным параметрам, для сохранения в оперативную память.

Запись происходит в несколько буферов, которые при заполнении или по таймауту попадают в очередь для передачи на выход (сама передача происходит при условии, что предыдущий прочтён).
Важно!
Работа блока занимает значительное время, может быть размещён только в Фоне.

Назначение входов и выходов

ВходыТипОписание
enbbвключение блока, 1-работает, 0-нет
bsizeu32размер буфера позволяет задать максимальное количество символов, хранимых в отдельном буфере [128;4096]
bnumu32количество буферов [2;64]
initbлогический - создать ли все буферы при инициализации. Полезно если требуемые диагностические сообщения имеют большой объём и генерируются с самого начала работы программы. Изначально, при иниициализации создаётся минимальное количество буферов и, если требуется, увеличивается в процессе работы. Если данный вход выставлен в 1, то сразу будет создано bnum буферов
tmoutu64таймаут неполного буфера (в миллисекундах) определяет временной промежуток, через который буфер, не заполненный до конца, будет считаться готовым к выдаче. Отсчёт ведётся с момента последнего дописанного сообщения. Полезно, если диагностические сообщения генерируются редко или имеют малый объём
glvlu16уровень ошибок, если у сообщения уровень меньше или равен заданному, то оно будет напечатано независимо от кодов и индексов (ERR=1, WRN=2, INF = 3, DBG = 10, DBG+N)
dbglvlu16уровень отладки, если у сообщения уровень превышает заданный, оно не будет напечатано
dscrdbсброс - очищает списки отслеживаемых блоков и кодов. Срабатывает при изменении значения с нуля на единицу
codeu32код отладки(-d) - значение, которое будет добавлено в список отслеживаемых, при изменении входа addcd, или удалено, при изменении входа delcd
addcdbдобавление кода в список отслеживаемых
delcdbудаление кода из списка отслеживаемых
indxu32индекс блока - значение, которое будет добавлено в список отслеживаемых, при изменении входа addix, или удалено, при изменении входа delix
addixbдобавление индекса в список отслеживаемых
delixbудаление индекса из списка отслеживаемых
printbлогический - выводить ли записываемые логи в консоль
ВыходыТипОписание
stsu32статус: 0 - всё в порядке; +2 - сообщение, записываемое в буфер, превышает его максимальный размер, часть сообщения обрезана; +4 - все буферы заполнены, происходит периодическая потеря сообщений. Для устранения ошибок следует изменить соответствующие входные параметры: размер bsize, или количество bnum
logrlogтекущий буфер, доступный для чтения
cdss100список отслеживаемых диагностических кодов
indxss100список индексов отслеживаемых блоков

Ссылки