# Lire les données du fichier fourni
def read_data(file_path):
    with open(file_path, 'rb') as f:
        return f.read()

# Calculer toutes les positions spécifiques par rapport au MCUID
def calculate_positions_from_mcuid(mcuid_bytes, data_length):
    positions = []
    mcuid_length = len(mcuid_bytes)
    for i in range(mcuid_length):
        position = (sum(mcuid_bytes) + i * mcuid_bytes[i % mcuid_length]) % data_length
        positions.append(position)
    return positions

# Chemins vers les fichiers
file_path = '/var/www/html/modification_carto/ori'
output_positions_path = '/var/www/html/modification_carto/all_positions_formatted.txt'

# Lire les données du fichier
original_data = read_data(file_path)

# MCUID en bytes
mcuid_bytes = bytes.fromhex("4104058606609011820600102403ED00")
data_length = len(original_data)

# Calculer toutes les positions spécifiques par rapport au MCUID
positions_from_mcuid = calculate_positions_from_mcuid(mcuid_bytes, data_length)

# Enregistrer les positions dans le format souhaité
with open(output_positions_path, 'w') as f:
    f.write("relevant_positions = [\n")
    for i, pos in enumerate(positions_from_mcuid):
        if i % 10 == 0 and i != 0:
            f.write("\n")
        f.write(f"    {pos},")
    f.write("\n]")

print(f"Toutes les positions ont été enregistrées dans {output_positions_path}")
