mbed-os github
Dependencies: ADS1015 Faulhaber HTU21D_mod MS5837_potless Sensor_Head_RevB_3 USBDevice_dfu Utilsdfu beep
Fork of ARNSRS_testDFU by
Diff: main.cpp
- Revision:
- 74:f4704f312116
- Parent:
- 73:2bbea82bf1e5
- Child:
- 75:eec3e587c8b8
diff -r 2bbea82bf1e5 -r f4704f312116 main.cpp --- a/main.cpp Wed Jul 18 17:20:04 2018 +0000 +++ b/main.cpp Thu Jul 19 08:13:34 2018 +0000 @@ -191,6 +191,33 @@ Thread thread_Volets_POUMON; Thread thread_Volets_FUITE; + +//Récap des fonctions +void Save_Pos();//Sauvegarde des positions moteurs +void Mode_SECU();//Mise en secu des moteurs +void Sleep_IHM();//Mise en veille IHM, envoie de la consigne sur son port série +void Sleep_HIGHT_WakeUp();//Mise en veille MCU avec réveille sur front haut +void Sleep_LOW_WakeUp();//Mise en veille MCU avec réveille sur front bas. BABEFACE +void ALIM_is_unplugged();//Appelée par l'intéruption. Passe juste un FLAG à false +void ALIM_unplugged();//Appelée par le sécu THREAD si le FLAG ci-dessus passe a false +void Stop_Sequence();//Enchainement des fonction amenant à l'arrêt de l'appareil +void Affichage();//Affichage complet du Debug dans le Terminal...ne pas utiliser car trop lent...préférer le même sur l'IHM +void Traceur_Arduino();//Envoies des Data pour être interprétées par le traceur Arduino +int Power_Test(DigitalIn& pin);//Test une pin Digital..Renvoie 1 ou 0. Pas utilisée, on utilise les intérruptions +float Power_Test(AnalogIn& pin);//Lecture d'une pin analogique. Pas encore utilisée +bool Check();//A remplir de paramètres qui renvoie true s'ils sont bon, false s'ils sont hors limites +void Calcul_OTU();//Calcul des OTU, commandée par un Tcker toutes les 60 s +void SENSORS_thread();//Thread d'intérogation des capteurs. Appelé tous les ref_time +void GO_TO_thread_POUMON();//Thread d'asservissement en position du volet Poumon. Appelé en permanence, priorité haute +void GO_TO_thread_FUITE();//Thread d'asservissement en position du volet Fuite. Appelé en permanence, priorité haute +void SECU_thread();//Thread de contrôle des paramètres devant entrainer une réaction de sécurité. Pour le moment capture du Flag de l'alim débranchée +void callbackParam();//Callback de l'intéruption des com sur le port USD +void callbackIHM();//Callback de l'intéruption des com sur le port IHM +void Decoding_Message(char message []);//Décodage des message reçu par le port USB +void Decoding_IHM(char message []);//Décodage des message reçu par le port IHM. Uniquement le transfert sur clef USB pour le moment +void Create_File_Name_Date();//Création d'un nom de fichier par date +void Create_File_Name_Index();//Création d'un nom de fichier par Index + void Save_Pos() { @@ -587,13 +614,13 @@ FLAG_TRACE = true; OUTPUT(" Démarrage du tracé Arduino.\r\n"); } - } else if (0 == strcmp(com, "PING")) { + } else if (0 == strcmp(com, "ping")) { /*Commande_IHM = 1; IHM("<0 0 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;%d>\r\n", Commande_IHM); FLAG_DISPLAY = false; Commande_IHM = 0;*/ E3V = 0; - } else if (0 == strcmp(com, "ARNSRS_ID")) { + } else if (0 == strcmp(com, "arnsrs_id")) { OUTPUT(" Changement de l'ID de l'appareil pour le N°: %s\r\n", numb); //UTILS::Store_A_Val(atoi(numb), "ARNSRS_ID"); UTILS::EffacePage(2, PAGE_ID_ADDR, 1); @@ -604,27 +631,27 @@ } else if (0 == strcmp(com, "debug")) { FLAG_AFF = false; FLAG_WINDEV = false; - } else if (0 == strcmp(com, "Head_ID")) { + } else if (0 == strcmp(com, "head_id")) { //On l'enregistre dans l'eeprom OUTPUT("Changement de l'ID de la tête capteur pour le N°: %s\r\n", numb); UTILS::write_EEPROM(numb, HEAD_ID); - } else if (0 == strcmp(com, "O2_1_ID")) { + } else if (0 == strcmp(com, "o2_1_id")) { //On l'enregistre dans l'eeprom UTILS::write_EEPROM(numb, CELL_O2_1_ID); - } else if (0 == strcmp(com, "O2_2_ID")) { + } else if (0 == strcmp(com, "o2_2_id")) { //On l'enregistre dans l'eeprom UTILS::write_EEPROM(numb, CELL_O2_2_ID); - } else if (0 == strcmp(com, "CO2_ID")) { + } else if (0 == strcmp(com, "co2_id")) { //On l'enregistre dans l'eeprom UTILS::write_EEPROM(numb, CO2_ID); - } else if (0 == strcmp(com, "calib_O2")) { + } else if (0 == strcmp(com, "calib_o2")) { FLAG_O2 = false; wait_ms(100); float Val = sensors.Calibrate_O2(atoi(numb)); OUTPUT(" Calibration O2 dans l'air = %f\r\n", Val); wait_ms(100); FLAG_O2 = true; - } else if (0 == strcmp(com, "calib_CO2_A")) { + } else if (0 == strcmp(com, "calib_co2")) { int Val = sensors.Calibrate_CO2(); OUTPUT(" Calibration CO2 dans l'air = %d\r\n", Val); } else if (0 == strcmp(com, "flash_i")) { @@ -636,12 +663,7 @@ } else if (0 == strcmp(com, "flash_m")) { OUTPUT(" Montage de la Flash.\r\n"); UTILS::Mount_Flash(); - } else if (0 == strcmp(com, "check_F")) { - /* - OUTPUT(" ARNSRS_ID.sys = %d\r\n", (int)UTILS::Read_A_Val("ARNSRS_ID.sys")); - OUTPUT(" Servo_Poumon.sys = %d\r\n", (int)UTILS::Read_A_Val("Servo_Poumon.sys")); - OUTPUT(" Servo_Fuite.sys = %d\r\n", (int)UTILS::Read_A_Val("Servo_Fuite.sys")); - */ + } else if (0 == strcmp(com, "check_f")) { OUTPUT(" ARNSRS ID = %d\r\n", (int) UTILS::Read(ID_ARNSRS_ADDR)); OUTPUT(" Dernière Position volet poumon enregistrée = %d\r\n", (int) UTILS::Read(VOLET_POUMON_ADDR)); OUTPUT(" Dernière Position volet fuite enregistrée = %d\r\n", (int) UTILS::Read(VOLET_FUITE_ADDR)); @@ -691,12 +713,12 @@ } else if (0 == strcmp(com, "file_s")) { char filename[20]; UTILS::Get_File_Size(&serialMonit, numb); - } else if (0 == strcmp(com, "calib_p")) { + } else if (0 == strcmp(com, "calib_pou")) { volet_poumon_Position = 0; Servo_Poumon.reset(); Consigne_poumon = HOME_SERVO_POUMON; OUTPUT(" Volet poumon Calibré.\r\n"); - } else if (0 == strcmp(com, "calib_f")) { + } else if (0 == strcmp(com, "calib_fui")) { volet_fuite_Position = 0; Servo_Fuite.reset(); Consigne_fuite = HOME_SERVO_FUITE; @@ -725,22 +747,22 @@ OUTPUT(" Reset de l'appareil.\r\n"); wait(1); NVIC_SystemReset(); - } else if (0 == strcmp(com, "Kc")) { + } else if (0 == strcmp(com, "kc")) { Kc = atof(numb); control_Servo.reset(); control_Servo.setTunings(Kc, Ti, Td); OUTPUT(" MAJ PID --> Kc = %f Ti = %f Td = %f\r\n", Kc, Ti, Td); - } else if (0 == strcmp(com, "Ti")) { + } else if (0 == strcmp(com, "ti")) { Ti = atof(numb); control_Servo.reset(); control_Servo.setTunings(Kc, Ti, Td); OUTPUT(" MAJ PID --> Kc = %f Ti = %f Td = %f\r\n", Kc, Ti, Td); - } else if (0 == strcmp(com, "Td")) { + } else if (0 == strcmp(com, "td")) { Td = atof(numb); control_Servo.reset(); control_Servo.setTunings(Kc, Ti, Td); OUTPUT(" MAJ PID --> Kc = %f Ti = %f Td = %f\r\n", Kc, Ti, Td); - } else if (0 == strcmp(com, "Cons")) { + } else if (0 == strcmp(com, "cons")) { consigne = atoi(numb); control_Servo.setSetPoint(consigne); OUTPUT(" MAJ CONSIGNE PID --> Consigne = %d\r\n", consigne); @@ -753,7 +775,7 @@ UTILS::Write(FLAG_ADDR, 0xDEADBEEF); wait(1); NVIC_SystemReset(); - } else if (0 == strcmp(com, "PID")) { + } else if (0 == strcmp(com, "pid")) { if (FLAG_PID == 1) { OUTPUT(" PID OFF\r\n"); FLAG_PID = 0; @@ -762,7 +784,7 @@ FLAG_PID = 1; } } else { - + OUTPUT(" Commande COZIR, commande érronée....\r\n"); sensors.cozirSend(message); }