64 lines
2.1 KiB
Python

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...")