Novatek Log Parser: Переименовываем логи регистратора РПМ-16-4-3

Число просмотров: 2 275 

Утилита для переименовывания файлов регистратора РПМ-16-4-3

Уж не знаю, пользуется ли ещё кто старым регистратором НоваТек РПМ-16-4-3? У меня он стоит с момента покупки. Получается, что с 2012 года и работает без сбоев, собирая мне статистику, которую я иногда принтскриню и выкладываю в посты по теме. Можно увидеть стартовые токи холодильника, то как греет тёплый пол, как работает полотенцесушитель, подогрев бризера или как жрёт питание моё световое оборудование. Есть скриншот, как падала температура горячей воды при мощной аварии на ТЭЦ в 2017 году…

Но у этого регистратора есть кое-что, что меня начало задаблывать. Это то, как он пишет на флешку свои логи! Он создаёт файлы с именами TEST_x.TXT, где «x» — это порядковый номер файла. В чём косяк? А косяк в том, что регистратор действует очень примитивно: он создаёт имя файла, не проверяя дубликата. Файловая система типа FAT позволяет такие фокусы, потому что проверкой уникальности имён файлов занимается операционная система. А если ты пишешь на диск при помощи микроконтроллера — то составляй имя файла хоть из запрещённых символов (например, «:/\|») — файловой системе на это похеру.

Вот у регистратора иногда чего-то сбивается, и он начинает двоить файлы. Видимо, счётчик файлов у него — это просто переменная внутри памяти. Передёрнули питание — и он начал считать сначала. В результате получается такая вот херня:

Файлы от регистратора НоваТек РПМ-16-4-3 с задвоенными именами

Справа есть файл TEST_2.TXT и слева, на флешке, ещё есть с таким же именем, но совсем другими данными! А ещё меня выбесило то, что файлы сортируются через жопу. Что мне скажет «TEXT_36»? Да ничего! А вот если бы в имени файла были дата-время, то файлы и сортировались бы сами собой всегда верно, и всё наглядно было бы.

Вот взял я стаааарый Visual Basic и накатал за несколько часов утилиту. Потом несколько месяцев гонял её, вылавливал баги и глюки и решил выложить. Вдруг да кому сгодится? Ну мало ли?

Она написана так, что требует только файл библиотек от Visual Basic — MSVBVM60.Dll, который я закинул в архив вместе с самой утилитой. Вот тут её можно скачать: NLogParser.rar (614 кб). Не знаю, как оно будет работать на современых виндах, но должно работать без проблем. Программка очень простая и не сильно защищена от всяких нештатных ситуаций вида «диск защищён от записи», «файл уже существует», поэтому может падать. Так что сначала всегда оставляйте копию исходных файлов и уже потом, если прога нормально отработала, убивайте исходники!

Работает она так: указываем ей папку, в которой надо искать файлы от регистратора. Лучше, если это будет папка, куда они УЖЕ скопированы с флешки. Нажимаем «Reload List» и программа пытается найти любой файл с расширением «.txt» и выдернуть из него строки, похожие на дату-время.

Всё, что нашла — добавляет в список. Если файл найден, но дата не обнаружена — то она добавит его в список и напишет что не будет переименовывать.

Процесс обработки имён файлов регистратора РПМ-16-4-3

Всё, что остаётся сделать — ткнуть кнопку «Rename». Так как это Visual Basic, то просто так без всяких сторонних библиотек там файл не переименуешь. Поэтому моя программа копирует его под новым именем в ту же папку, а исходный удаляет. Поэтому на флешку-то её лучше и не натравливать — на диске или SSD это быстрее будет работать.

Вот как выглядит список файлов в процессе переименовывания:

Файлы после обработки

Теперь ещё один нюанс. Почему новые файлы всё равно имеют «TEST» в начале имени? А потому что НоваТек сделали так, что их программа анализа данных с регистратора опознаёт ТОЛЬКО файлы, которые начинаются со слова «TEST». Вот чтобы работала кнопка «Загрузить файлы из папки», я этот префикс и оставил.

Теперь сливать логи (и просматривать их) одно удовольствие: слил с флешки файлы в папку. Натравил программу, переименованные файлы залил в нужную папку архивов по годам.

А если надо найти какую-то дату, то ты можешь сразу соориентироваться по имени файла. Вуаля!

Программа анализа данных РПМ-16-4-3 видит новые файлы без проблем

Если вас заинтересовала информация из этого поста и вы хотите со мной связаться (или заказать Сборку щита / Консультацию/Мастер-Класс), то пишите мне на почту info@cs-cs.net или звоните на +7-926-286-97-35 (c 10 до 20 по Москве). На SMS и почту, написанную в одну строчку, я не отвечаю. Отзываюсь на имя Электрошаман.
Невнимательных, тупых и наглых продаванов и менеджеров я буду жёстко стебать, если они не заглянут в инфу про контакты для организаций, а скорее кинутся звонить.

7 Отзывов на “Novatek Log Parser: Переименовываем логи регистратора РПМ-16-4-3”


  • 1 MaSeVi

    Альтруист!)))…

  • 2 andy.pmb  [Харьков]

    если прога нормально отработала, убивайте исходники!

    Зачем???

  • 3 CS  [Москва]

    Так ежели она файлы нормально переименоваала — хрен исходные TEST_x хранить-то?

  • 4 andy.pmb  [Харьков]

    А, в этом плане исходники!..
    Пардон, профессиональное искривление-с. :)

  • 5 CS  [Москва]

    Не, этих, файлов =)) Те-то исходники бережём =))
    Я только один раз на автооткрывалку домофона исходники убил. Подумал что всё заархивировал и снёс их нахер. Причём там чего-то поверх перезаписалось и не восстановить было.
    Ща точно не помню, но кажется было так, что я архив сделал, но пустой версии (промежуточный). А потом перепутал распаковал его поверх релиза. CVS не было, для проекта из пяти файлов-то и локального.

  • 6 aMster

    В тотал коммандере по ctrl-M вызывается переименовыватель файликов.
    Очень мощный. И весьма простой к применению.

  • 7 CS  [Москва]

    В Far он тоже есть. Охрененно удобно отсортировать файлы по какому-нить критерию или из временного списка (найденных, отобранных), а потом переимновать по шаблону.
    Но тут задачка чуть более сложная: взять файл, найти в нём строку вида «date time params», считать оттудова дату-время и из них составить имя файла. То есть не по внешнему времени, а по данным из файла.

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.