import sys
import binascii

def extract_mcuid_at_position(file_path, position, mcuid_length=8):
    with open(file_path, 'rb') as file:
        file.seek(position)
        mcuid_bytes = file.read(mcuid_length)
        
    mcuid_hex = binascii.hexlify(mcuid_bytes).decode('utf-8').lower()
    return mcuid_hex

if __name__ == "__main__":
    if len(sys.argv) != 4:
        print("Usage: python3 t_mcuid.py <file_path> <position> <output_path>")
        sys.exit(1)
    
    file_path = sys.argv[1]
    position = int(sys.argv[2])
    output_path = sys.argv[3]

    try:
        mcuid = extract_mcuid_at_position(file_path, position)
        print(f"MCUID at position {position}: {mcuid}")

        with open(output_path, "w") as file:
            file.write(f"{mcuid}\n")

        print(f"MCUID extracted and saved to {output_path}")
    except Exception as e:
        print(f"Error: {str(e)}", file=sys.stderr)
        sys.exit(1)
