import base64 from 'base-64'; import { base64ToHex } from '../../parsing/binary'; const hexingHXE12Payload1 = '01 4f 42 02 30 2e 30 2e 31 28 48 58 45 31 32 2d 38 42 42 35 45 48 41 30 31 20 29 30 2e 32 2e 30 28 46 53 31 32 41 42 41 4c 54 54 44 32 30 31 38 30 31 56 31 32 29 43 2e 31 2e 30 28 31 38 38 34 30 38 36 34 29 31 35 2e 38 2e 30 28 30 30 30 35 32 34 31 2e 34 6b 57 68 29 35 2e 38 2e 30 28 30 30 30 31 33 32 36 2e 36 6b 76 61 72 68 29 31 2e 36 2e 30 28 30 30 32 2e 31 38 34 6b 57 29 33 31 2e 37 2e 30 28 30 30 30 2e 30 41 29 33 32 2e 37 2e 30 28 32 32 31 2e 34 56 29 43 2e 35 30 2e 30 28 30 30 31 30 29 43 2e 35 33 2e 30 28 30 30 39 33 29 31 32 2e 34 38 2e 30 28 30 30 30 30 29 43 2e 37 2e 35 28 30 31 30 34 29 43 31 2e 39 46 28 30 30 30 30 32 33 29 43 2e 31 2e 31 38 36 28 30 31 34 39 32 36 29 03 7c'; const hexingHXE12Payload1Part1 = hexingHXE12Payload1.slice(0, 3 * 20); const hexingHXE12Payload1Part2 = hexingHXE12Payload1.slice(3 * 20); const hexingHXE12DLPayload2 = '01 4f 42 02 30 2e 30 2e 31 28 48 58 45 31 32 2d 31 42 31 33 48 4f 4e 44 4e 4e 4e 4e 49 59 29 30 2e 32 2e 30 28 46 50 36 30 31 32 30 56 30 31 52 36 30 31 4d 30 30 33 29 43 2e 31 2e 30 28 31 39 32 39 33 36 35 39 29 31 35 2e 38 2e 30 28 30 30 30 30 31 31 38 38 2a 6b 57 68 29 35 2e 38 2e 30 28 30 30 30 30 30 32 34 34 2a 6b 76 61 72 68 29 31 2e 36 2e 30 28 30 30 30 2e 30 30 30 2a 6b 57 29 33 31 2e 37 2e 30 28 30 30 30 30 2e 30 30 2a 41 29 33 32 2e 37 2e 30 28 30 32 32 31 2e 37 31 2a 56 29 43 2e 35 30 2e 30 28 30 30 30 37 29 43 2e 35 33 2e 30 28 30 30 30 30 29 31 32 2e 34 38 2e 30 28 30 30 30 30 29 43 2e 37 2e 35 28 30 30 30 33 29 43 31 2e 39 46 28 30 30 30 38 33 33 2a 68 29 43 2e 31 2e 31 38 36 28 30 30 33 37 39 32 2a 68 29 03 3e'; // No checksum const hexingHXE34Payload = '01 4F 42 02 30 2e 30 2e 31 28 48 58 45 33 34 4b 31 42 42 35 45 49 41 30 30 29 30 2e 32 2e 30 28 46 53 33 34 42 42 41 4c 54 44 42 32 30 30 34 30 31 56 30 33 29 43 2e 31 2e 30 28 30 30 30 30 31 38 37 32 32 34 30 36 29 31 35 2e 38 2e 30 28 30 30 30 30 32 34 30 39 6b 57 68 29 35 2e 38 2e 30 28 30 30 30 30 30 30 31 32 6b 76 61 72 68 29 31 2e 36 2e 30 28 30 30 35 2e 36 32 31 6b 57 29 31 2e 32 2e 30 28 30 30 30 30 30 37 2e 38 39 6b 57 29 33 31 2e 37 2e 30 28 30 30 30 30 2e 30 30 41 29 35 31 2e 37 2e 30 28 30 30 30 30 2e 30 30 41 29 37 31 2e 37 2e 30 28 30 30 30 30 2e 30 30 41 29 33 32 2e 37 2e 30 28 32 32 31 2e 30 56 29 35 32 2e 37 2e 30 28 30 30 30 2e 30 56 29 37 32 2e 37 2e 30 28 30 30 30 2e 30 56 29 43 2e 35 30 2e 30 28 30 30 30 31 29 33 32 2e 34 38 2e 30 28 30 30 30 30 29 35 32 2e 34 38 2e 30 28 30 30 30 30 29 37 32 2e 34 38 2e 30 28 30 30 30 30 29 43 2e 37 2e 35 28 30 30 30 39 29 43 31 2e 39 46 28 30 30 30 30 30 30 29 43 2e 31 2e 31 38 36 28 30 30 30 30 30 32 29 31 2e 36 2e 30 2e 31 28 30 30 34 2e 38 32 30 6b 57 29 03 01 4F 42 02 30 2E 30 2E 31 28 48 58 45 33 34 4B 2D 31 42 42'; const HXE310Type564PayloadInAscii = '\u0001OB\u00020.4.2(2000)0.4.3(1)0.4.5(33000)0.4.6(110)C.1.0(19090006)0.9.1(144234)0.9.2(15-09-2022-4)1.2.0(1014)1.2.1(1014)1.2.2(0)1.2.3(0)1.6.0(113)1.6.1(113)1.6.2(0)1.6.3(0)1.8.0(31251)1.8.1(31251)1.8.2(0)1.8.3(0)2.2.0(0)2.2.1(0)2.2.2(0)2.2.3(0)2.6.0(0)2.6.1(0)2.6.2(0)2.6.3(0)2.8.0(0)2.8.1(0)2.8.2(0)2.8.3(0)5.8.0(52979)5.8.1(52979)5.8.2(0)5.8.3(0)96.50.0(13)\u0003'; const HX110Type563PayloadInAscii = '\u0001OB\u0002C.1.0(19050011)1.8.0(4357)2.8.0(0)5.8.0(6396)\u0003'; const hexingHXE34PayloadAsLog = ` Meter reading information: meterTypeCode: 055 interpretationCode: 2 meterFamily: hexing 2026-02-11 11:17:59:447: Write 7E 02 2026-02-11 11:18:00:385: Read AD FD 35 2E 38 2E 30 28 30 30 30 30 30 30 30 30 6B 76 61 72 2026-02-11 11:18:00:653: Read 68 29 31 2E 36 2E 30 28 30 30 30 2E 30 30 34 6B 57 29 31 2E 2026-02-11 11:18:00:802: Read 32 2E 30 28 30 30 30 30 30 30 2E 30 30 6B 57 29 33 31 2E 37 2026-02-11 11:18:00:918: Read 2E 30 28 30 30 30 30 2E 30 30 41 29 35 31 2E 37 2E 30 28 30 2026-02-11 11:18:01:074: Read 30 30 30 2E 30 30 41 29 37 31 2E 37 2E 30 28 30 30 30 30 2E 2026-02-11 11:18:01:314: Read 30 34 41 29 33 32 2E 37 2E 30 28 30 30 30 2E 30 56 29 35 32 2026-02-11 11:18:01:434: Read 2E 37 2E 30 28 30 30 30 2E 30 56 29 37 32 2E 37 2E 30 28 32 2026-02-11 11:18:01:674: Read 32 38 2E 32 56 29 43 2E 35 30 2E 30 28 30 30 30 30 29 33 32 2026-02-11 11:18:01:825: Read 2E 34 38 2E 30 28 30 30 30 30 29 35 32 2E 34 38 2E 30 28 30 2026-02-11 11:18:02:034: Read 30 30 30 29 37 32 2E 34 38 2E 30 28 30 30 30 30 29 43 2E 37 2026-02-11 11:18:02:214: Read 2E 35 28 30 31 31 38 29 43 31 2E 39 46 28 30 30 30 31 39 33 2026-02-11 11:18:02:455: Read 29 43 2E 31 2E 31 38 36 28 30 30 31 30 38 33 29 31 2E 36 2E 2026-02-11 11:18:02:465: Read 30 2E 31 28 30 30 30 2E 30 30 30 6B 57 29 03 68 2026-02-11 11:18:04:735: Read 01 4F 42 02 30 2E 30 2E 31 28 48 58 45 33 34 4B 2D 31 42 42 2026-02-11 11:18:04:914: Read 35 45 49 41 30 30 29 30 2E 32 2E 30 28 46 53 33 34 42 42 41 2026-02-11 11:18:05:065: Read 4C 54 44 42 32 30 30 34 30 31 56 30 33 29 43 2E 31 2E 30 28 2026-02-11 11:18:05:245: Read 30 30 30 30 31 37 32 31 37 34 37 39 29 31 35 2E 38 2E 30 28 2026-02-11 11:18:05:392: Read 30 30 30 30 30 30 30 30 6B 57 68 29 35 2E 38 2E 30 28 30 30 2026-02-11 11:18:05:512: Read 30 30 30 30 30 30 6B 76 61 72 68 29 31 2E 36 2E 30 28 30 30 2026-02-11 11:18:05:662: Read 30 2E 30 30 34 6B 57 29 31 2E 32 2E 30 28 30 30 30 30 30 30 2026-02-11 11:18:05:783: Read 2E 30 30 6B 57 29 33 31 2E 37 2E 30 28 30 30 30 30 2E 30 30 2026-02-11 11:18:06:053: Read 41 29 35 31 2E 37 2E 30 28 30 30 30 30 2E 30 30 41 29 37 31 2026-02-11 11:18:06:201: Read 2E 37 2E 30 28 30 30 30 30 2E 30 35 41 29 33 32 2E 37 2E 30 2026-02-11 11:18:06:323: Read 28 30 30 30 2E 30 56 29 35 32 2E 37 2E 30 28 30 30 30 2E 30 2026-02-11 11:18:06:564: Read 56 29 37 32 2E 37 2E 30 28 32 32 38 2E 32 56 29 43 2E 35 30 2026-02-11 11:18:06:682: Read 2E 30 28 30 30 30 30 29 33 32 2E 34 38 2E 30 28 30 30 30 30 2026-02-11 11:18:06:926: Read 29 35 32 2E 34 38 2E 30 28 30 30 30 30 29 37 32 2E 34 38 2E 2026-02-11 11:18:07:163: Read 30 28 30 30 30 30 29 43 2E 37 2E 35 28 30 31 31 38 29 43 31 2026-02-11 11:18:07:282: Read 2E 39 46 28 30 30 30 31 39 33 29 43 2E 31 2E 31 38 36 28 30 2026-02-11 11:18:07:464: Read 30 31 30 38 33 29 31 2E 36 2E 30 2E 31 28 30 30 30 2E 30 30 2026-02-11 11:18:07:480: Read 30 6B 57 29 03 69 2026-02-11 11:18:07:509: Stop 7E FF `; export const hexingHXE12LogPayload = ` Meter reading information: meterTypeCode: 049 interpretationCode: 1 meterFamily: hexing 2026-02-11 11:17:27:133: Write 7E 02 2026-02-11 11:17:30:505: Read 01 4F 42 02 30 2E 30 2E 31 28 48 58 45 31 32 2D 38 42 42 35 2026-02-11 11:17:30:529: Read 45 48 41 30 31 20 29 30 2E 32 2E 30 28 46 53 31 32 41 42 41 2026-02-11 11:17:30:529: Read 4C 54 54 44 32 30 31 38 30 31 56 31 32 29 43 2E 31 2E 30 28 2026-02-11 11:17:30:530: Read 31 37 33 33 31 30 39 39 29 31 35 2E 38 2E 30 28 30 30 30 30 2026-02-11 11:17:30:530: Read 30 30 33 2E 38 6B 57 68 29 35 2E 38 2E 30 28 30 30 30 30 30 2026-02-11 11:17:30:531: Read 30 30 2E 35 6B 76 61 72 68 29 31 2E 36 2E 30 28 30 30 30 2E 2026-02-11 11:17:31:008: Read 30 30 30 6B 57 29 33 31 2E 37 2E 30 28 30 30 30 2E 30 41 29 2026-02-11 11:17:31:013: Read 33 32 2E 37 2E 30 28 32 32 39 2E 38 56 29 43 2E 35 30 2E 30 2026-02-11 11:17:31:014: Read 28 30 30 30 32 29 43 2E 35 33 2E 30 28 30 30 30 30 29 31 32 2026-02-11 11:17:31:039: Read 2E 34 38 2E 30 28 30 30 30 30 29 43 2E 37 2E 35 28 30 30 37 2026-02-11 11:17:31:046: Read 34 29 43 31 2E 39 46 28 30 30 34 31 31 35 29 43 2E 31 2E 31 2026-02-11 11:17:31:049: Read 38 36 28 30 30 34 31 34 34 29 03 75 2026-02-11 11:17:31:062: Stop 7E FF`; const HXE310Type560PayloadInAsciiFirst = () => base64ToHex( base64.encode( '\u0001OB\u00020.4.2(2000)0.4.3(1)0.4.5(33000)0.4.6(110)C.1.0(18995624)0.9.1(144234)0.9.2(15-09-2022-4)1.2.0(1014)1.2.1(1014)1.2.2(14145)1.2.3(5115)1.6.0(113)1.6.1(113)1.6.2(0)1.6.3(0)1.8.0(31251)1.8.1(31251)1.8.2(0)1.8.3(0)2.2.0(0)2.2.1(0)2.2.2(0)2.2.3(0)2.6.0(0)2.6.1(0)2.6.2(0)2.6.3(0)2.8.0(0)2.8.1(0)2.8.2(0)2.8.3(0)5.8.0(52979)5.8.1(52979)5.8.2(36881)5.8.3(5454)96.50.0(13)\u0003', ), ); const HXE310Type560PayloadInAsciiSecond = () => base64ToHex( base64.encode( '\u0001OB\u00020.4.2(2000)0.4.3(1)0.4.5(33000)0.4.6(110)C.1.0(18995624)0.9.1(144234)0.9.2(15-09-2022-4)1.2.0(1014)1.2.1(1127)1.2.2(14145)1.2.3(5115)1.6.0(113)1.6.1(113)1.6.2(0)1.6.3(0)1.8.0(31251)1.8.1(31251)1.8.2(0)1.8.3(0)2.2.0(0)2.2.1(0)2.2.2(0)2.2.3(0)2.6.0(0)2.6.1(0)2.6.2(0)2.6.3(0)2.8.0(0)2.8.1(0)2.8.2(0)2.8.3(0)5.8.0(52979)5.8.1(52979)5.8.2(36881)5.8.3(5454)96.50.0(14)\u0003', ), ); const resetOk = (resetCommand: string) => `00 ${resetCommand}`; const resetError = (resetCommand: string) => `01 ${resetCommand}`; export default { hexingHXE12Payload1, hexingHXE12Payload1Part1, hexingHXE12Payload1Part2, hexingHXE12DLPayload2, hexingHXE34Payload, hexingHXE34PayloadAsLog, hexingHXE12LogPayload, HXE310Type564PayloadInAscii, HX110Type563PayloadInAscii, HXE310Type560PayloadInAsciiFirst, HXE310Type560PayloadInAsciiSecond, resetOk, resetError, };