Projet

Général

Profil

Logiciel » import_serial.py

Adam-Musharraf IMTHADULLA, 31/01/2025 23:59

 
import serial
import csv
import re

# Configuration du port série
port_serie = serial.Serial(port='COM4', baudrate=115200, timeout=1) # Timeout de 1 seconde

# Nom du fichier CSV
csv_file = '/Users/a.imthadulla/Desktop/Punch/UART_data.csv'

# Créer et ouvrir le fichier CSV en mode écriture
with open(csv_file, mode='w', newline='') as file:
csv_writer = csv.writer(file)

# Ajouter une ligne d'en-tête au fichier CSV
csv_writer.writerow(["Test", "Entrée", "Sortie", "Statut", "Temps (ticks)"])

print("Lecture des données UART... Appuyez sur Ctrl+C pour arrêter.")

while True:
try:
# Lire une ligne complète depuis le port série
line = port_serie.readline().decode('utf-8').strip()
# Vérifier si la ligne correspond au format attendu
match = re.match(r"Test (\d+): Entrée: ([\d\s]+)-> Sortie: ([\d\s]+)-> (\w+) \| Temps: (\d+) ticks", line)
if match:
# Extraire les groupes correspondants
test_number = int(match.group(1)) # Numéro du test
input_vector = match.group(2).strip() # Vecteur d'entrée (en chaîne)
output_vector = match.group(3).strip() # Vecteur de sortie (en chaîne)
status = match.group(4) # Statut (Bon ou Échoué)
time_ticks = int(match.group(5)) # Temps en ticks

# Afficher les données extraites
print(f"Test: {test_number}, Entrée: {input_vector}, Sortie: {output_vector}, Statut: {status}, Temps: {time_ticks} ticks")

# Écrire les données dans le fichier CSV
csv_writer.writerow([test_number, input_vector, output_vector, status, time_ticks])
except KeyboardInterrupt:
print("\nArrêt du script.")
break
except Exception as e:
print(f"Erreur : {e}")

# Fermer le port série
port_serie.close()
print("Port série fermé.")
(6-6/8)