#!/usr/bin/python3 # -*- coding: UTF8 -*- # Reception de données depuis un arduino via port série version = "0.1" #Configuration du port série port_serie = "/dev/ttyACM1" #port_serie_alt = "/dev/ttyACM1" baud_rate = 115200 ############# import serial from pprint import pprint str_line = [] #une ligne de donnée lue sur le port série et prétraitée data = dict() #une donnée d'un capteur data_package = dict() #un paquet de donnée à un moment data_set = dict() #ensemble des paquets de données with serial.Serial(port_serie, baud_rate) as comm: #, timeout = 0 print("Initialization du microcontroleur en cours...") while True: line = comm.readline() if line == b'###Init_end###\r\n' : break else: print(".") while True: line = comm.readline() if line == b'###Data_start###\r\n' : break else: print("En attente d'un nouveau paquet de données...") while True: line = comm.readline() if line == b'###Data_start###\r\n' : print("Nouveau paquet de données !") #break elif line == b'###Data_end###\r\n' : print("Fin du paquet de données !") else: #Nettoyage des caractères spéciaux inutile (retour chariot...) et # conversion en liste de chaînes de caractères str_line = line.decode("ascii").strip().split('\t') #Mise en tableau de données data['type'] = str_line[0].strip() data['sensor'] = str_line[1].strip() data['value'] = str_line[2].strip() if len(str_line) > 3 and str_line[3].strip() != "-": data['unit'] = str_line[3].strip() else: data['unit'] = None if len(str_line) > 4: data['comment'] = str_line[4] else: data['comment'] = None data_package[data['type'] + "_" + data['sensor']] = data data = {} pprint(data_package)