|
|
@@ -14,17 +14,19 @@ class Arduino_data(): |
|
|
|
if(not(os.path.isdir(self.data_path_dir))): #creer dossier si non existant |
|
|
|
os.mkdir(self.data_path_dir, 0o777) |
|
|
|
self.raw_data_temp = [[]] |
|
|
|
self.captors = [] |
|
|
|
|
|
|
|
|
|
|
|
def add_captors_from_file(self, file): |
|
|
|
try: |
|
|
|
"""Importation, à partir d'un fichier, des capteurs déjà enregistrés.""" |
|
|
|
try: # ouverture fichier |
|
|
|
captors_file = open(file, "r") |
|
|
|
except: |
|
|
|
except: # si fichier non existant, création du fichier et ajout de capteur |
|
|
|
print("Le fichier des capteurs n'existe pas encore. Ajoutez au moins 1 capteur:\n") |
|
|
|
captors_file = open(file,"w") #création du fichier |
|
|
|
captors_file.close() |
|
|
|
self.add_captor_manually(file) |
|
|
|
else: |
|
|
|
else: # fichier existant |
|
|
|
lines = captors_file.readlines() |
|
|
|
self.nb_captor_signals = len(lines) |
|
|
|
if(self.nb_captor_signals == 0): |
|
|
@@ -39,10 +41,12 @@ class Arduino_data(): |
|
|
|
captor_line = lines[i] |
|
|
|
capt = Captor_data(); |
|
|
|
capt.read_captor(captor_line) |
|
|
|
self.captors.append(capt) |
|
|
|
captors_file.close() |
|
|
|
self.raw_data_temp = np.empty((1,self.nb_captor_signals)) |
|
|
|
|
|
|
|
def add_captor_manually(self, file): |
|
|
|
"""Ajout manuel de capteurs (nom, unité, type de données (raw/real))""" |
|
|
|
self.nb_captor_signals += 1 |
|
|
|
capt = Captor_data() |
|
|
|
|
|
|
@@ -56,6 +60,7 @@ class Arduino_data(): |
|
|
|
capt.data_type = -1 |
|
|
|
while(capt.data_type <= -1 or capt.data_type >= 2): |
|
|
|
capt.data_type = int(input("Type de données : 0 (raw) ou 1 (real): ")) |
|
|
|
self.captors.append(capt) |
|
|
|
|
|
|
|
captors_file = open(file, "a") |
|
|
|
captors_file.write(capt.captor_file_line()) |
|
|
@@ -65,6 +70,7 @@ class Arduino_data(): |
|
|
|
print("Capteur ajouté") |
|
|
|
|
|
|
|
def captors_print_list(self, file): |
|
|
|
"""Affichage des capteurs listés dans le fichier, dans l'ordre""" |
|
|
|
captors_file = open(file, "r") |
|
|
|
print(" Nom Unit Type(raw/real)") |
|
|
|
for i in range(self.nb_captor_signals): |
|
|
@@ -72,8 +78,10 @@ class Arduino_data(): |
|
|
|
captors_file.close() |
|
|
|
|
|
|
|
def del_captor(self, file): |
|
|
|
"""Suppression d'un capteur""" |
|
|
|
self.captors_print_list(file) |
|
|
|
captor_to_del = int(input("\nNumero du capteur a supprimer : "))-1 |
|
|
|
del self.captors[captor_to_del-1] |
|
|
|
captors_file = open(file, "r") |
|
|
|
lines = captors_file.readlines(); |
|
|
|
captors_file.close() |
|
|
@@ -88,6 +96,9 @@ class Arduino_data(): |
|
|
|
self.nb_captor_signals = self.nb_captor_signals-1 |
|
|
|
|
|
|
|
def change_captors_order(self, file): |
|
|
|
"""Changement de l'ordre des capteurs, pour correspondre à l'ordre des |
|
|
|
valeurs correspondantes aux capteurs de l'Arduino""" |
|
|
|
capt_temp = self.captors[:] |
|
|
|
self.captors_print_list(file) |
|
|
|
captors_file = open(file, "r") |
|
|
|
lines = captors_file.readlines(); |
|
|
@@ -99,6 +110,7 @@ class Arduino_data(): |
|
|
|
|
|
|
|
captors_file = open(file, "w") |
|
|
|
for i in range(self.nb_captor_signals): |
|
|
|
self.captors[i] = capt_temp[captors_order[i]-1] |
|
|
|
captor_line = lines[captors_order[i]-1] |
|
|
|
captors_file.write(captor_line) |
|
|
|
captors_file.close() |
|
|
@@ -106,6 +118,8 @@ class Arduino_data(): |
|
|
|
self.captors_print_list(file) |
|
|
|
|
|
|
|
def extract_data_to_array(self, raw_data_txt): |
|
|
|
"""Lecture d'une ligne envoyée par Arduino, et parsing des données |
|
|
|
par rapport aux virgules dans un tableau""" |
|
|
|
coma = "," |
|
|
|
coma_places = raw_data_txt.find(coma) |
|
|
|
if(type(coma_places) == type(int())): |
|
|
@@ -128,11 +142,14 @@ class Arduino_data(): |
|
|
|
self.data_array = np.append(self.data_array, self.raw_data_temp, axis=0) |
|
|
|
|
|
|
|
def create_data_file(self): |
|
|
|
"""Création du fichier csv où sont enregistrées les données, avec comme nom |
|
|
|
l'horodatage du fichier""" |
|
|
|
self.data_file_path = self.data_path_dir + "/" + time.asctime()+".csv" |
|
|
|
file = open(self.data_file_path,"w") #mode append |
|
|
|
file.close() |
|
|
|
|
|
|
|
def append_data_to_file(self, data): |
|
|
|
"""Écriture, à la fin du fichier csv, des données tampon""" |
|
|
|
file = open(self.data_file_path,"a") #mode append |
|
|
|
file.write(data) |
|
|
|
file.close() |
|
|
|