S05APP2: Noyau temps réel

Dependencies:   mbed mbed-rtos

Files at this revision

API Documentation at this revision

Comitter:
benjaminroy
Date:
Tue Jan 31 19:06:42 2017 +0000
Parent:
25:9428c29c50dc
Commit message:
Ajout de la valeur dans le printf

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue Jan 31 18:50:29 2017 +0000
+++ b/main.cpp	Tue Jan 31 19:06:42 2017 +0000
@@ -4,7 +4,7 @@
 #include "Serial.h"
 #include "rtos.h"
  
- #define seuil 0.125
+#define seuil 0.125
  
 Serial pc(USBTX, USBRX); // tx, rx
 Ticker ticker;
@@ -23,6 +23,7 @@
 typedef struct {
     char* temps;         // Étampe indiquant l’heure et la date de l'occurrence
     uint8_t broche;      // Le numéro de la broche
+    float valeur; 
 } mail_t;
 
 Mail<mail_t, 4> mail_box;
@@ -30,7 +31,7 @@
 // -------------------------------------------------------
 // -------------------------------------------------------
 
-void envoyer_mail(uint8_t broche) {
+void envoyer_mail(uint8_t broche, float valeur) {
     mutex.lock();
     time_t secondes = time(NULL);
     mutex.unlock();
@@ -38,6 +39,7 @@
     mail_t *mail = mail_box.alloc();
     mail->temps = ctime(&secondes);
     mail->broche = broche;
+    mail->valeur = valeur;
     mail_box.put(mail);
 }  
 
@@ -63,12 +65,12 @@
             
             if (moyenne_passee[0] != -1) {
                 if (((moyenne_courante[0] < moyenne_passee[0]) && (1 - (moyenne_courante[0] / moyenne_passee[0]) > seuil)) || (1 - (moyenne_passee[0] / moyenne_courante[0]) > seuil)) {
-                    envoyer_mail(19); /*** Génération éventuelle d'un événement ***/
+                    envoyer_mail(19, moyenne_courante[0]); /*** Génération éventuelle d'un événement ***/
                 }    
             }
             if (moyenne_passee[1] != -1) {
                 if (((moyenne_courante[1] < moyenne_passee[1]) && (1 - (moyenne_courante[1] / moyenne_passee[1]) > seuil)) || (1 - (moyenne_passee[1] / moyenne_courante[1]) > seuil)) {
-                    envoyer_mail(20); /*** Génération éventuelle d'un événement ***/
+                    envoyer_mail(20, moyenne_courante[1]); /*** Génération éventuelle d'un événement ***/
                 }    
             }
             moyenne_passee[0] = moyenne_courante[0];
@@ -97,7 +99,7 @@
             valeurs[0] = entreenum[0];
             
             if (entreenum[0] == en_1.read()) {
-                envoyer_mail(15); /*** Génération d'un évènement... ***/
+                envoyer_mail(15, entreenum[0]); /*** Génération d'un évènement... ***/
             } 
         } 
         if (entreenum[1] != valeurs[1]) {
@@ -106,7 +108,7 @@
             valeurs[1] = entreenum[1];
             
             if (entreenum[1] == en_2.read()) {
-                envoyer_mail(16); /*** Génération d'un évènement... ***/
+                envoyer_mail(16, entreenum[1]); /*** Génération d'un évènement... ***/
             } 
         }
         Thread::yield(); 
@@ -121,7 +123,7 @@
             mail_t *mail = (mail_t*)evt.value.p;
             
             /*** Écriture de l'événement en sortie (port série) ***/
-            pc.printf("%d: Date: %s\n", mail->broche, mail->temps);
+            pc.printf("Broche %d; Valeur: %f; Date: %s\n", mail->broche, mail->valeur, mail->temps);
             mail_box.free(mail);
         } 
     }
@@ -134,15 +136,12 @@
         t1->signal_set(0x2);
         verifierSiStable = false;
     }
-    
     if (compteur % 2 == 0) {        // Entrées numériques échantillionnées à tous les 100 ms
         t1->signal_set(0x1);
     }
-    
     if (compteur % 5 == 0) { // Entrées analogiques échantillonnées à tous les 250 ms
         t2->signal_set(0x1);
     }
-    
     if (compteur % 10 == 0) {
         compteur = 0;
     }