Десериализация .LOG шестнадцатеричных файлов pH-метра HANNA HI98184 - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь проанализировать файлы .LOG из pH-метра HANNA Instruments HI98194 на компьютере, отличном от Windows, для приложения для мониторинга химических веществ в промышленности. HANNA предоставляет программное обеспечение на базе Windows, которое может преобразовывать эти файлы журналов в устаревший формат Excel 5.0 (BIFF5), который также трудно прочитать при использовании последнего Apache POI. Поэтому я позвонил производителю, который дал отрицательный ответ.

Каждый файл .LOG на устройстве имеет префикс Meter <some remark>, за которым следует набор (предположительно) временных отметок + значения с плавающей запятой. Первые 2296 байтов файла журнала выглядят так в шестнадцатеричном виде:

4D657465 720A3530 63206261 73650000 2BC8B222 FF00073E 0700FFFF F1FF2719 0C7B1400 460901AC 2D040000 00080202 00000000 00000000 00000000 00000000 00000000 00000000 000000B3 38000000 00000000 00003CC8 B222FF00 073E0700 FFFFF1FF 46270C99 1600ED08 01563804 00000069 020280EF FF80EFFF 00000000 00000000 00000000 00000000 00000000 00B23800 00000000 0000000B 78C8B222 FF00073E 0700FFFF F1FFC964 0C3AFBFF 7D0D01C1 3F040000 00F00202 60F3FF60 F3FF0000 00000000 00000000 00000000 00000000 000000B6 38000000 00000000 0030B4C8 B222FF00 073E0700 FFFFF1FF C0830C5D 1D00D707 014A6704 00000008 05020103 98010398 00000000 00000000 00000000 00000000 00000000 00B43800 00000000 000000E6 F0C8B222 FF00073E 0700FFFF F1FFEB94 0CBF2600 4B060118 88040000 00FB0702 00000000 00000000 00000000 00000000 00000000 00000000 000000B5 38000000 00000000 00E32CC9 B222FF00 073E0700 FFFFF1FF B3FB0DB5 79FFB923 01640B05 000000CF EA010000 00000000 00000000 00000000 00000000 00000000 00000000 00B93800 00000000 00000019 68C9B222 FF00073E 0700FFFF F1FF87EC 0DBD87FF 4E210190 26050000 0025F401 00000000 00000000 00000000 00000000 00000000 00000000 000000BB 38000000 00000000 00C6A4C9 B222FF00 073E0700 FFFFF1FF D7ED0DD1 92FF621F 01904905 000000A1 FA010000 00000000 00000000 00000000 00000000 00000000 00000000 00B93800 00000000 00000065 E0C9B222 FF00073E 0700FFFF F1FF0209 0E489EFF 611D019A 63050000 003AFC01 80814380 81430000 00000000 00000000 00000000 00000000 000000B9 38000000 00000000 001A1CCA B222FF00 073E0700 FFFFF1FF F2240E7E BFFF9F17 01E48905 000000E1 F6010000 00000000 00000000 00000000 00000000 00000000 00000000 00B83800 00000000 000000BB 58CAB222 FF00073E 0700FFFF F1FF9C36 0E37B5FF 64190160 9A050000 0077F601 00000000 00000000 00000000 00000000 00000000 00000000 000000B5 38000000 00000000 002D94CA B222FF00 073E0700 FFFFF1FF A5620E7F C5FF9116 01BCAB05 00000068 F201FFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00B63800 00000000 000000E5 D0CAB222 FF00073E 0700FFFF F1FF2A5F 0EBDC5FF 8716015D BF050000 0025EE01 00000000 00000000 00000000 00000000 00000000 00000000 000000B8 38000000 00000000 007D0CCB B222FF00 073E0700 FFFFF1FF 04720E1A AAFF481B 019ACD05 00000051 EA01A001 00A00100 00000000 00000000 00000000 00000000 00000000 00B43800 00000000 0000009A 48CBB222 FF00073E 0700FFFF F1FF1E78 0E9DDBFF C1120101 D7050000 0046EA01 00000000 00000000 00000000 00000000 00000000 00000000 000000B5 38000000 00000000 00F584CB B222FF00 073E0700 FFFFF1FF B5850E3B 0300430C 01F8D105 000000C0 EB01FFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00B63800 00000000 0000006B C0CBB222 FF00073E 0700FFFF F1FF949F 0E08E4FF 4E110175 E8050000 0019EA01 00000000 00000000 00000000 00000000 00000000 00000000 000000B4 38000000 00000000 0089FCCB B222FF00 073E0700 FFFFF1FF 2AB90E24 D9FF2B13 015CFB05 00000022 E601FFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00B53800 00000000 000000B3 38CCB222 FF00073E 0700FFFF F1FF39D5 0EB1D7FF 6A13015D 06060000 000D0402 00000000 00000000 00000000 00000000 00000000 00000000 000000B6 38000000 00000000 006374CC B222FF00 073E0700 FFFFF1FF 54F10E07 0300510C 01401A06 000000E6 1A020000 00000000 00000000 00000000 00000000 00000000 00000000 00B63800 00000000 000000A7 CFCCB222 FF00073E 0700FFFF F1FF1511 0FC4FBFF 7D0D01F5 1A060000 00462302 FFFFFFFF FFFF0000 00000000 00000000 00000000 00000000 000000B2 38000000 00000000 00750BCD B222FF00 073E0700 FFFFF1FF 73170FED DAFFDA12 01172106 0000008B 23020000 00000000 00000000 00000000 00000000 00000000 00000000 00B63800 00000000 000000F2 47CDB222 FF00073E 0700FFFF F1FF1F49 0F1BDFFF 221201E9 31060000 00F12102 00000000 00000000 00000000 00000000 00000000 00000000 000000B3 38000000 00000000 001A83CD B222FF00 073E0700 FFFFF1FF 56760F1F E3FF7211 01AE2F06 00000098 20020000 00000000 00000000 00000000 00000000 00000000 00000000 00B83800 00000000 000000B5 BFCDB222 FF00073E 0700FFFF F1FFEA7F 0F2EDFFF 1E120149 2E060000 00B92102 00000000 00000000 00000000 00000000 00000000 00000000 000000BA 38000000 00000000 0066FBCD B222FF00 073E0700 FFFFF1FF 74CC0F62 E4FF3C11 01053106 00000057 21020000 00000000 00000000 00000000 00000000 00000000 00000000 00B73800 00000000 000000A3 37CEB222 FF00073E 0700FFFF F1FFBBE9 0F3CF3FF DF0E01CD 36060000 00272302 00000000 00000000 00000000 00000000 00000000 00000000 000000B2 38000000 00000000 00DF73CE B222FF00 073E0700 FFFFF1FF 6109106D EAFF4610 01F65306 000000C5 2402FFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00B53800 00000000 00000069 AFCEB222 FF00073E 0700FFFF F1FF1F42 10E0F0FF 400F0137 52060000 00CB2302 00000000 00000000 00000000 00000000 00000000 00000000 000000B8 38000000 00000000 0076EBCE B222FF00 073E0700 FFFFF1FF D14F10E5 2500DC06 014F7106 000000DD 2502FFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00BA3800 00000000 00000066 27CFB222 FF00073E 0700FFFF F1FFBD7C 10FA1800 EB080124 75060000 00DD2402 00000000 00000000 00000000 00000000 00000000 00000000 000000B4 38000000 00000000 001F63CF B222FF00 073E0700 FFFFF1FF 3196104E 1D003E08 01177706 000000E7 2502FFFF FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00B63800 00000000 000000AD 9FCFB222 FF00073E 0700FFFF F1FF88A0 10551F00 EE070177 64060000 00622702 00000000 00000000

Я надеюсь подтвердить это значениями, которые я могу считать со счетчика, чтобы я мог автоматизировать синтаксический анализ:

<date>, <time>, 5.2mVpH, 6.79pH, 273.8mVORP, 131.6 %DO, 10.49 ppmDO, 0uS/cm, 0uS/cmA, 999999 Ohm.cm, 0ppm TDs, 26.27 deg C, 14.515 psi, 5.8 mVpH.
<date>, <time + 60s>, 6.78 mVpH, 276.6 mVORP, 131.7 %DO, 10.46 ppmDO, 0uS/cm, 0uS/cmA, 999999 Ohm.cm, 0ppm TDS, 26.47 deg C, 14.514 psi, <some pH value>.

Как мне расшифровать этот формат журнала? Существует ли какой-либо инструмент разборки, который может понюхать подобные вещи для меня или найти обычные смещения? Я подозреваю, что каждый ряд имеет постоянный размер.

...