|
|
@@ -37,11 +37,16 @@ else: |
|
|
|
print("PoDoCor est pret a enregistrer les donnees") |
|
|
|
|
|
|
|
while(flag_state > 0): |
|
|
|
if(flag_state == 1): |
|
|
|
if(flag_state == 1): #afficher le menu |
|
|
|
print("_________________________________\n\nMAJ + P : Enregistrement des donnees\nMAJ + N : Gerer les capteurs\nMAJ + X : Arrêt du programme (ne fonctionne pas pendant l'enregistrement)\n_________________________________\n") |
|
|
|
flag_state = 4 |
|
|
|
elif(flag_state == 4): # appui clavier pour les choix du menu principal |
|
|
|
flag_state = fc.press_key('XPN', [0, 2, 3], flag_state) #detection de touche pressee (demarrage procedure acquisition) |
|
|
|
elif(flag_state == 3): |
|
|
|
|
|
|
|
elif(flag_state == 3): # afficher le ss-menu capteurs |
|
|
|
print(" _________________________________\n MAJ + U : Lister les capteurs\n MAJ + A : Ajouter un capteur\n MAJ + E : Supprimer un capteur\n MAJ + T : Changer l'ordre des capteurs\n MAJ + Q : Menu principal\n _________________________________\n") |
|
|
|
flag_state = 5 |
|
|
|
elif(flag_state == 5): # apui clavier pour les choix du ss-enu capteurs |
|
|
|
flag_state = fc.press_key('AETUQ', [31, 32, 33, 34, 1], flag_state) #detection de touche pressee (demarrage procedure acquisition) |
|
|
|
if(flag_state == 31): |
|
|
|
arduino_data.add_captor_manually(captors_path) |
|
|
@@ -56,26 +61,28 @@ while(flag_state > 0): |
|
|
|
arduino_data.captors_print_list(captors_path) |
|
|
|
flag_state = 3 |
|
|
|
|
|
|
|
elif(flag_state == 2): |
|
|
|
elif(flag_state == 2): # enregistrement des données |
|
|
|
data_buff_nb = 0 |
|
|
|
arduino_data.create_data_file() |
|
|
|
time_0 = time.time()-1 |
|
|
|
while(flag_state == 2): #boucle de reception des donnees |
|
|
|
time_0 = time.time() |
|
|
|
arduino_ser.write(1) #envoi de '1' a l'Arduino |
|
|
|
time.sleep(time_0+0.5-time.time()) |
|
|
|
time_1 = time_0+0.5 |
|
|
|
raw_data_txt = arduino_ser.readline() #format des donnees: data1,data2,data3\n raw data |
|
|
|
print(raw_data_txt) |
|
|
|
time_0 = time_0+1 |
|
|
|
time_1 = time_0+0.6 |
|
|
|
arduino_ser.write(bytes('1','utf-8')) #envoi de '1' a l'Arduino (acquisition donnees) |
|
|
|
time.sleep(max(time_1-time.time(), 0)) |
|
|
|
arduino_ser.write(bytes('2','utf-8')) #envoi de '2' (réception donnees) |
|
|
|
time.sleep(0.05) |
|
|
|
raw_data_txt = arduino_ser.readline() #format des donnees: data1,data2,data3\n |
|
|
|
print(str(raw_data_txt)[2:-5]) |
|
|
|
if(raw_data_txt == ''): # si aucune donnée reçue |
|
|
|
print("Arduino n'envoie aucune donnee, veuillez verifier le code televerse.") |
|
|
|
flag_state = -1 |
|
|
|
data_buff_nb = 0 |
|
|
|
else: |
|
|
|
data_buff_nb +=1 |
|
|
|
data_buff = data_buff + str(raw_data_txt) + "\n" #add 1 data line in buffer |
|
|
|
|
|
|
|
data_buff = data_buff + str(raw_data_txt)[2:-5] + "\n" #add 1 data line in buffer |
|
|
|
#procedure extraction donnees pour affichage |
|
|
|
arduino_data.extract_data_to_array(raw_data_txt) |
|
|
|
arduino_data.extract_data_to_array(str(raw_data_txt)[2:-5]) |
|
|
|
|
|
|
|
# procedure d'ecriture fichier |
|
|
|
if(data_buff_nb == data_buff_max): |
|
|
@@ -83,21 +90,18 @@ while(flag_state > 0): |
|
|
|
data_buff = "" #remise a zero |
|
|
|
data_buff_nb = 0 |
|
|
|
|
|
|
|
flag_state = fc.press_key('P', [1], flag_state) |
|
|
|
time.sleep(time_1+0.5-time.time()) |
|
|
|
print(time.time()) |
|
|
|
flag_state = fc.press_key_timeout('P', [1], flag_state) |
|
|
|
time.sleep(max(time_0+1-time.time(), 0)) |
|
|
|
|
|
|
|
# while end |
|
|
|
if(data_buff_nb > 0): #vidage du buffer |
|
|
|
arduino_data.ppend_data_to_file(self, data_buff) |
|
|
|
arduino_data.append_data_to_file(data_buff) |
|
|
|
data_buff = "" |
|
|
|
data_buff_nb = 0 |
|
|
|
|
|
|
|
arduino_ser.close() |
|
|
|
assert flag_data == True, "Sortie de la boucle de reception des donnees" |
|
|
|
|
|
|
|
|
|
|
|
elif(flag_state == 0): |
|
|
|
break |
|
|
|
|
|
|
|
arduino_ser.close() |
|
|
|
print("Fermeture du programme.") |