64 lines
2.1 KiB
Python
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...")
|