import serial import threading # Paramètres du port série port = 'COM1' # Remplacez cela par le nom de votre port série baudrate = 9600 timeout = 1 # Temps d'attente en secondes pour la lecture du port série print (""" ************************************************* * * * Enregistrement de mesures dans un fichier * * Ce programme permet d'enregistrer * * les mesures dans un fichier .txt * * * * Axel BRUA * * Version 0.1 * * * ************************************************* """) # Demander à l'utilisateur le nom du fichier à créer nom_fichier = input("Entrez le nom du fichier (sans l'extension .txt) : ") nom_fichier += ".txt" # Ouvrir le port série ser = serial.Serial(port, baudrate, timeout=timeout) # Créer une fonction pour la lecture en continu du port série def lire_port_serie(): with open(nom_fichier, "w") as fichier: while not stop_requested.is_set(): donnees = ser.readline().decode('utf-8') # Lire une ligne du port série fichier.write(donnees) # Écrire les données dans le fichier fichier.flush() # Forcer l'écriture dans le fichier print(donnees, end='', flush=True) # Afficher les données sans saut de ligne # Créer un drapeau pour indiquer l'arrêt de la lecture du port série stop_requested = threading.Event() # Démarrer le thread de lecture du port série thread = threading.Thread(target=lire_port_serie) thread.start() # Attente de l'entrée utilisateur pour arrêter la lecture input("Appuyez sur Entrée pour arrêter la lecture du port série.\n\n") # Demander au thread de s'arrêter stop_requested.set() # Attendre que le thread se termine thread.join() # Fermer le port série ser.close() print(f"Données enregistrées dans le fichier : {nom_fichier}\n") input("Appuyez sur Entrée pour quitter...")