Универсальный просмотрщик логов

Обсуждаем все что касается программ для персонального компьютера:
менеджер, логгер, автопостроитель кривых УОЗ и т.д.
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Универсальный просмотрщик логов

Post by Samtorr »

Для девайса из этой темы понадобился просмотрщик логов. Кроме того, хотелось чтобы он понимал и логи секу. В общем, учитывая все возможное разнообразие логов (полей, форматов и т.д.), было решено состряпать свой просмотрщик (поскольку другого не нашлось), в некоторой степени универсальный.
Написан на C#, требует .NET Framework 4 Client. Чтоб заставить его показывать графики нужно задать две вещи - файл шаблона и файл лога. С файлом лога все более менее понятно, жмем File - Open и показываем лог. С файлом шаблона чуть интереснее. Задается просто Settings/Template - Set Template... Программа запоминает шаблон, файл лога нужно переоткрывать при изменении шаблона.
Итак, что такое шаблон и для чего он нужен. Для того чтобы жестко не задавать структуру лог-файла (разделитель, число полей, их порядок и т.д.) решено было сделать конструктор шаблонов, который задает как общие параметры отображения (ось Х, цвет фона и пр.) так и индивидуальные (кривые, толщина, цвет... прочее). В шаблоне ставится соответствие кривой и столбцу данных в лог файле, причем данные можно трансформировать (например, если столбец из сырых данных с АЦП). Кривая добавляется в шаблон кнопкой Add, изменяется кнопкой Modify (чтобы что-то изменить, нужно сначала что-то добавить), удаляется - Delete. Сам шаблон можно открыть - Open, сохранить - Save. Изменение шаблона можно делать по схеме Открыть - Изменить - Пересохранить.
Две основных вкладки настройки шаблона:
gen.gif
cur.gif
Имя кривой пишем в Curve. Выставляем остальные параметры и жмем добавить. Потом не забудьте сохранить шаблон. Маленькое замечание по осям (axis) - их можно не отображать (чтобы не нагромождать графики), на пределы лучше указывать, дабы графики выглядели соразмерно.
Маска нужна для отображения ошибки из поля типа 00001000100, какую маску поставим (ее еще надо включить галочкой), ту ошибку и отловим.
Параметры по оси Х берутся либо из файла (автонумерация не включена) - столбец 0, если там формат времени то автоматом будет время по оси Х, если времени в лог файле нет (лог пишется девайсом по таймеру), то ставим автонумерацию, разрешаем ее, трансформируем нужным образом и отображаем на оси Х.
Например, данные из лог файла во вложении по шаблону 1 (время из файла)
result.gif
По шаблону 2 (считаем что запись каждые 20 мс)
result2.gif
График интерактивный, можно таскать, ресайзить и т.д. Есть интересное и полезное контекстное меню...
Замечания и предложения приветствуются. Если что непонятно, спрашивайте. Версия пока альфа, потому в файл шаблона и прочие места рецепт от борща вставлять не стоит, хоть основные исключения и обработаны.
Attachments
LogsViewerApp.rar
(169.73 KiB) Downloaded 451 times
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

Re: Универсальный просмотрщик логов

Post by STC »

На .net написан?
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Универсальный просмотрщик логов

Post by Samtorr »

Да, с использованием свободного компонента zedgraph.
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Универсальный просмотрщик логов

Post by Samtorr »

Немного обновил программу. Теперь это вполне удобный и универсальный инструмент.
Что добавлено:
-возможность быстро переоткрывать одним кликом последний лог (полезно при смене шаблона)
-в меню about можно получить сводку по активному шаблону
-добавились пункты Axis Y view и Curve view позволяющие быстро управлять видимостью осей и кривых. Изменения автоматически сохраняются в активный шаблон
В шаблонах:
-возможность включить сетку
-возможность выбрать столбец Х
-выбор числа пропущенных строк (прореживание файла)
-признак видимости кривой
-возможность отображать скорость изменения параметра dValue/dT . Также задается время dT в мс, если точки по Х в формате DateTime, либо в строчках, если автонумерация, либо по разнице по Х если столбец не в DateTime. Трансформация в этом случае тоже работает и можно привести результат к осмысленной размерности
-исправлены мелкие неточности

Из глюков, а скорее особенность zedgraph - при смене активного шаблона, где ось Х была в формате времени, на шаблон, где ось Х не в формате времени, если текущий масштаб был не default (контекстное меню), возможно некорректное отображение формата оси. Лечится просто - либо закрыть а потом открыть программу после смены шаблона, либо через контекстное установить масштаб default и сделать reopen.
При открытии больших логов, возможно, несколько секунд придется подождать.

Чтобы корректно понимались шаблоны старого образца нужно открыть старый шаблон, а потом сохранить его. При этом кривых видно не будет (их параметр видимости будет false), но через меню Curve View можно будет задать видимость нужных кривых, либо в самом конструкторе шаблонов.
При первом запуске нужно установить путь к активному шаблону и открыть лог через open.
Примерный вид:
graph_new.gif
Вопросы по использованию, по логике работы и о замеченных глюках - пишем тут.
Attachments
LogsViewerApp_1_1_0_0.rar
(173.09 KiB) Downloaded 425 times
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

Re: Универсальный просмотрщик логов

Post by STC »

Круто :!:
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

Re: Универсальный просмотрщик логов

Post by alvikagal »

Еще не пользовался, но есть пожелания для маленьких экранов - подписи осей сделать рядом с осью, чтобы полезная область была больше. Спасибо за прошу.
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Универсальный просмотрщик логов

Post by Samtorr »

Тут тоже есть нюансы - в зависимости от длины названия, текст может налезать на градуировку оси, если отображать на графике то может залазить на кривые, отображать прямо на конце оси - подвинет левое или верхнее поле... Если чего, есть возможность через шаблон вообще убрать подпись. Размер шрифта надписей настраивается (в шаблон пока не вводил дабы не загромождать его), его можно сделать поменьше. Но самая главная проблема, непонятно как смещать подписи осей, стандартных методов zedgraph не предоставляет, а лезть в его исходники.... ))) ну Вы понимаете ))
Плюс учитывая возможность гибко масштабировать сам график и окно программы - не думаю что это большая проблема...
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Универсальный просмотрщик логов

Post by Samtorr »

Теперь несколько оптимизированная версия ))
Замечание по скорости открытия лога - версия 1.1.0.0 открывала файл на около 6000 записей порядка 6 секунд. Методом Copy/Paste я увеличил размер лога до 60000 записей - 13.6 Мбайт. Открывала она его 2мин 05 сек (на моем компьютере). Мне показалось что это слишком много, решил пройтись по коду студийным профайлером, в итоге нашел несколько временеемких строчек, которые затесались в цикл обработки строк, где им не место. Переместив их куда положено, получил следующие результаты: 6000 записей - менее секунды, практически сразу, 60000 - 6 секунд. Разница впечатляющая ))
После открытия версии работают с одинаковой скоростью. О скорости, на моем компе при 60000 записях (при периоде записи 100мс это 100 мин лога) и 5 кривых, график можно вполне комфортно рассматривать. Легкие подтормаживания есть, но не критичные. Если увеличить лог еще в 2 раза (120000), время открытия около 10-11 сек, но рассматривать график уже неудобно из-за тормозов.
Attachments
LogsViewerApp_1_1_0_2.rar
(173.1 KiB) Downloaded 504 times
maksim
Posts: 96
Joined: 02 Aug 2014, 16:28
Your CAR: ВАЗ-2106 1.9
SECU version: official SECU-3T
Has thanked: 19 times
Been thanked: 4 times

Re: Универсальный просмотрщик логов

Post by maksim »

На форуме уже упоминалось о настройке оптимальных кривых по логам. Эта программа может решить этот вопрос?
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Универсальный просмотрщик логов

Post by Samtorr »

maksim wrote: Эта программа может решить этот вопрос?
Эта программа - инструмент для удобного просмотра логов. Принимать решение по настройке придется самому, на основе их анализа. В поиске оптимальных кривых главное критерии, которые надо изложить и осознать в явном виде, а автоматизация - дело второе.
Post Reply

Return to “Программное обеспечение для ПК и релизы ПО”