SmartPipe. Правила.

Блог им. trapper
Основная особенность SmartPipe это возможность «на лету» форматировать логи от тестового устройства. Для включения этой функции, необходимо описать правила (Rules) по которым будет идти обработка строк лога.
Правило — это запись типа «шаблон» — «действия».
Входная строка лога проверяется на соответствие «шаблону» правила и если они совпадают выполняются «действия» предписанные правилом.


Например правило :*function*;;lcolor red;
— проверяет на наличие в строке лога подстроки «function» и если подстрока найдена то выполняется команда «lcolor red» (текущая строка лога будет отображаться красным цветом)

Все правила разбиты на группы для ускорения проверки каждой строки. Группа правил это просто набор каких-либо правил с одинаковой "меткой". Каждая входная строка проверяется на все правила из текущей группы правил. Изменение текущей группы правил происходит при вызове команды — begin <метка>. Если "метка" в правиле не указанна, то считается что это правило входит в группу «по умолчанию». Правила такой группы проверяются если команда begin еще не была указанна.
"метка" — это строка из 8 символов идентифицирующая группу при записи правила, она пишется самая первая в правиле и завершается ":"
Например:
group1:*function*;;lcolor red; — правило группы «group1»
group2:*function*;;lcolor blue; — правило группы «group2»
:*function*;;begin group1; — правило группы по умолчанию, при срабатывании правила текущая группа меняется на «group1»

Обобщенный формат правила выглядит так:

[метка]:[шаблон];;[команда];[команда];....

, где
метка — имя группы правил;
шаблон — wild-card строка с джокер символами *(любые символы), ?(любой один символ) и тд.
команда — имя команды с параметрами, которая будет выполнена если шаблон правила и строка лога совпадут.
Например:
group1:*function*;;lcolor red; — правило из группы «group1». Правило «красит» все строки с подстрокой «function» в красный цвет.
:second?;; skip; — правило из группы по умолчанию. Правило пропускает все строки которые начинаются на «second» с длиной строки 7.
:other*;; ltime; — правило из группы по умолчанию. Правило добавляет дамп времени во все строки которые начинаются на «other».

Кроме обычных правил которые проверяются для каждой строки лога существуют правила инициализации, которые выполняются только один раз при старте работы с правилами. Это позволяет производить начальные настройки SmartPipe, такие как выбор конфигурации портов устройства, установка таймера и тд…
Правила инициализации записываются как обычные правила но с пустыми полями "метки" и "шаблона".
Например:
:;;filter;правило инициализации, которое конфигурирует порты SmartPipe,
организуется канал обмена USB(Virtual COM1) <-> Filter(Rules) <-> UART
:;;resettime;правило инициализации, сбрасывает таймер времени в 00:00:00:00.

Больше информации о правилах, командах и тд. можно будет узнать на сайте (который еще «пилиться» :( )

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.