From e921f1c0571b08f0a63be73601b646fe2eb6cfe5 Mon Sep 17 00:00:00 2001 From: Axel Date: Mon, 6 Nov 2023 14:52:36 +0100 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"/"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mesure.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ start_mesure.bat | 1 + 2 files changed, 64 insertions(+) create mode 100644 mesure.py create mode 100644 start_mesure.bat diff --git a/mesure.py b/mesure.py new file mode 100644 index 0000000..c98f39f --- /dev/null +++ b/mesure.py @@ -0,0 +1,63 @@ +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...") diff --git a/start_mesure.bat b/start_mesure.bat new file mode 100644 index 0000000..ba35551 --- /dev/null +++ b/start_mesure.bat @@ -0,0 +1 @@ +start powershell python ./mesure.py \ No newline at end of file