import struct def search_scaled_values(p: bytes, val_sys: int, val_dia: int, val_map: int): # We will search for scaled values: val, val * 10, val * 100 targets = [ (val_sys, "Sys"), (val_sys * 10, "Sys*10"), (val_sys * 100, "Sys*100"), (val_dia, "Dia"), (val_dia * 10, "Dia*10"), (val_dia * 100, "Dia*100"), (val_map, "Map"), (val_map * 10, "Map*10"), (val_map * 100, "Map*100") ] for offset in range(len(p) - 1): v = struct.unpack_from(' 6 else -1 # We want to print only if something is found # Redirect output internally import io import sys old_stdout = sys.stdout new_stdout = io.StringIO() sys.stdout = new_stdout search_scaled_values(p, 108, 53, 75) output = new_stdout.getvalue() sys.stdout = old_stdout if output.strip(): print(f"Packet #{idx} (Len={l}, Subtype={subtype}):") print(output, end="")