Обозначение

Описание
Блок обеспечивает возможность сбора логов по заданным параметрам, для сохранения в оперативную память.
Запись происходит в несколько буферов, которые при заполнении или по таймауту попадают в очередь для передачи на выход (сама передача происходит при условии, что предыдущий прочтён).
Запись происходит в несколько буферов, которые при заполнении или по таймауту попадают в очередь для передачи на выход (сама передача происходит при условии, что предыдущий прочтён).
Важно!
Работа блока занимает значительное время, может быть размещён только в Фоне.
Работа блока занимает значительное время, может быть размещён только в Фоне.
Назначение входов и выходов
| Входы | Тип | Описание |
| enb | b | включение блока, 1-работает, 0-нет |
| bsize | u32 | размер буфера позволяет задать максимальное количество символов, хранимых в отдельном буфере [128;4096] |
| bnum | u32 | количество буферов [2;64] |
| init | b | логический - создать ли все буферы при инициализации. Полезно если требуемые диагностические сообщения имеют большой объём и генерируются с самого начала работы программы. Изначально, при иниициализации создаётся минимальное количество буферов и, если требуется, увеличивается в процессе работы. Если данный вход выставлен в 1, то сразу будет создано bnum буферов |
| tmout | u64 | таймаут неполного буфера (в миллисекундах) определяет временной промежуток, через который буфер, не заполненный до конца, будет считаться готовым к выдаче. Отсчёт ведётся с момента последнего дописанного сообщения. Полезно, если диагностические сообщения генерируются редко или имеют малый объём |
| glvl | u16 | уровень ошибок, если у сообщения уровень меньше или равен заданному, то оно будет напечатано независимо от кодов и индексов (ERR=1, WRN=2, INF = 3, DBG = 10, DBG+N) |
| dbglvl | u16 | уровень отладки, если у сообщения уровень превышает заданный, оно не будет напечатано |
| dscrd | b | сброс - очищает списки отслеживаемых блоков и кодов. Срабатывает при изменении значения с нуля на единицу |
| code | u32 | код отладки(-d) - значение, которое будет добавлено в список отслеживаемых, при изменении входа addcd, или удалено, при изменении входа delcd |
| addcd | b | добавление кода в список отслеживаемых |
| delcd | b | удаление кода из списка отслеживаемых |
| indx | u32 | индекс блока - значение, которое будет добавлено в список отслеживаемых, при изменении входа addix, или удалено, при изменении входа delix |
| addix | b | добавление индекса в список отслеживаемых |
| delix | b | удаление индекса из списка отслеживаемых |
| b | логический - выводить ли записываемые логи в консоль | |
| Выходы | Тип | Описание |
| sts | u32 | статус: 0 - всё в порядке; +2 - сообщение, записываемое в буфер, превышает его максимальный размер, часть сообщения обрезана; +4 - все буферы заполнены, происходит периодическая потеря сообщений. Для устранения ошибок следует изменить соответствующие входные параметры: размер bsize, или количество bnum |
| log | rlog | текущий буфер, доступный для чтения |
| cds | s100 | список отслеживаемых диагностических кодов |
| indxs | s100 | список индексов отслеживаемых блоков |