$ cat /tmp/test #!/usr/bin/env python import base64 import struct def decode_dt_params(params_str): raw_data = bytes.fromhex(params_str) #очистка от нуль-терминатора: if len(raw_data) % 4 != 0 and raw_data[-1] == 0: raw_data = raw_data[:-1] #сначала 4 байта заголовка, потом float с параметрами header_size = 4 if len(raw_data) >= header_size: payload = raw_data[header_size:] float_count = len(payload) // 4 floats = struct.unpack(f'{float_count}f', payload[:float_count*4]) return { params_str: floats} print(decode_dt_params("0000c03f000000000000c8426c09793c000000000000c8420000000000000000000000000000000000000000000000000000000000000000")) print(decode_dt_params("00000000000080b9cccc0c4000004842000080c00100000001000000")) $ $ $ /tmp/test {'0000c03f000000000000c8426c09793c000000000000c8420000000000000000000000000000000000000000000000000000000000000000': (0.0, 100.0, 0.015200000256299973, 0.0, 100.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)} {'00000000000080b9cccc0c4000004842000080c00100000001000000': (-0.000244140625, 2.1999998092651367, 50.0, -4.0, 1.401298464324817e-45, 1.401298464324817e-45)} user@zenbook:~$