Универсальный просмотрщик логов
Posted: 08 Apr 2016, 00:27
Для девайса из этой темы понадобился просмотрщик логов. Кроме того, хотелось чтобы он понимал и логи секу. В общем, учитывая все возможное разнообразие логов (полей, форматов и т.д.), было решено состряпать свой просмотрщик (поскольку другого не нашлось), в некоторой степени универсальный.
Написан на C#, требует .NET Framework 4 Client. Чтоб заставить его показывать графики нужно задать две вещи - файл шаблона и файл лога. С файлом лога все более менее понятно, жмем File - Open и показываем лог. С файлом шаблона чуть интереснее. Задается просто Settings/Template - Set Template... Программа запоминает шаблон, файл лога нужно переоткрывать при изменении шаблона.
Итак, что такое шаблон и для чего он нужен. Для того чтобы жестко не задавать структуру лог-файла (разделитель, число полей, их порядок и т.д.) решено было сделать конструктор шаблонов, который задает как общие параметры отображения (ось Х, цвет фона и пр.) так и индивидуальные (кривые, толщина, цвет... прочее). В шаблоне ставится соответствие кривой и столбцу данных в лог файле, причем данные можно трансформировать (например, если столбец из сырых данных с АЦП). Кривая добавляется в шаблон кнопкой Add, изменяется кнопкой Modify (чтобы что-то изменить, нужно сначала что-то добавить), удаляется - Delete. Сам шаблон можно открыть - Open, сохранить - Save. Изменение шаблона можно делать по схеме Открыть - Изменить - Пересохранить.
Две основных вкладки настройки шаблона: Имя кривой пишем в Curve. Выставляем остальные параметры и жмем добавить. Потом не забудьте сохранить шаблон. Маленькое замечание по осям (axis) - их можно не отображать (чтобы не нагромождать графики), на пределы лучше указывать, дабы графики выглядели соразмерно.
Маска нужна для отображения ошибки из поля типа 00001000100, какую маску поставим (ее еще надо включить галочкой), ту ошибку и отловим.
Параметры по оси Х берутся либо из файла (автонумерация не включена) - столбец 0, если там формат времени то автоматом будет время по оси Х, если времени в лог файле нет (лог пишется девайсом по таймеру), то ставим автонумерацию, разрешаем ее, трансформируем нужным образом и отображаем на оси Х.
Например, данные из лог файла во вложении по шаблону 1 (время из файла) По шаблону 2 (считаем что запись каждые 20 мс) График интерактивный, можно таскать, ресайзить и т.д. Есть интересное и полезное контекстное меню...
Замечания и предложения приветствуются. Если что непонятно, спрашивайте. Версия пока альфа, потому в файл шаблона и прочие места рецепт от борща вставлять не стоит, хоть основные исключения и обработаны.
Написан на C#, требует .NET Framework 4 Client. Чтоб заставить его показывать графики нужно задать две вещи - файл шаблона и файл лога. С файлом лога все более менее понятно, жмем File - Open и показываем лог. С файлом шаблона чуть интереснее. Задается просто Settings/Template - Set Template... Программа запоминает шаблон, файл лога нужно переоткрывать при изменении шаблона.
Итак, что такое шаблон и для чего он нужен. Для того чтобы жестко не задавать структуру лог-файла (разделитель, число полей, их порядок и т.д.) решено было сделать конструктор шаблонов, который задает как общие параметры отображения (ось Х, цвет фона и пр.) так и индивидуальные (кривые, толщина, цвет... прочее). В шаблоне ставится соответствие кривой и столбцу данных в лог файле, причем данные можно трансформировать (например, если столбец из сырых данных с АЦП). Кривая добавляется в шаблон кнопкой Add, изменяется кнопкой Modify (чтобы что-то изменить, нужно сначала что-то добавить), удаляется - Delete. Сам шаблон можно открыть - Open, сохранить - Save. Изменение шаблона можно делать по схеме Открыть - Изменить - Пересохранить.
Две основных вкладки настройки шаблона: Имя кривой пишем в Curve. Выставляем остальные параметры и жмем добавить. Потом не забудьте сохранить шаблон. Маленькое замечание по осям (axis) - их можно не отображать (чтобы не нагромождать графики), на пределы лучше указывать, дабы графики выглядели соразмерно.
Маска нужна для отображения ошибки из поля типа 00001000100, какую маску поставим (ее еще надо включить галочкой), ту ошибку и отловим.
Параметры по оси Х берутся либо из файла (автонумерация не включена) - столбец 0, если там формат времени то автоматом будет время по оси Х, если времени в лог файле нет (лог пишется девайсом по таймеру), то ставим автонумерацию, разрешаем ее, трансформируем нужным образом и отображаем на оси Х.
Например, данные из лог файла во вложении по шаблону 1 (время из файла) По шаблону 2 (считаем что запись каждые 20 мс) График интерактивный, можно таскать, ресайзить и т.д. Есть интересное и полезное контекстное меню...
Замечания и предложения приветствуются. Если что непонятно, спрашивайте. Версия пока альфа, потому в файл шаблона и прочие места рецепт от борща вставлять не стоит, хоть основные исключения и обработаны.