Permet de créer, envoyer, filtrer et decrypter la trame meteo.

Dependencies:   mbed meteoCAN

Revision:
2:4a57fcb1ab30
Parent:
1:265dc028a37d
--- a/main.cpp	Mon Jun 17 11:32:19 2019 +0000
+++ b/main.cpp	Sat Jun 29 20:16:17 2019 +0000
@@ -13,71 +13,52 @@
 
 int main() {
     
-    uint16_t id_can, len_can=0, i, octet;
+    uint16_t i, octet;
     char trame[8];
     bool readCAN=false;
-         
-    pc.printf("Entrez l'ID CAN de votre trame : ");
-    pc.printf(">");
-    scanf("%hu",&id_can);
-    pc.printf("%hu", id_can);
-    pc.printf("\n");
     
-    pc.printf("Entrez le nombre d'octet de donnees de votre trame (de 0 a 8) : ");
-    do{
-        pc.printf(">");
-        scanf("%hu",&len_can);
-    }while(8<len_can);
-    pc.printf("%hu", len_can);
-    pc.printf("\n");
-    
-    if(len_can != 0){
-        pc.printf("Entrez successivement chaque octet de donnee (de 0 a 255) :\n");
-        for(i=0;i<len_can;i++){
-            pc.printf(" -> Octet[%hu] : ",i);
-            do{
-            pc.printf(">");
-            scanf("%hu",&octet);
-            }while(255<octet);
-            trame[i] = octet;
-            pc.printf("%hu", trame[i]);
-            pc.printf("\n");
-        }
-        pc.printf("\n");
-    }
-    while(1){ 
+    while(1){
+        
         readCAN=false;
-    
-        pc.printf("**********Envoi de la trame par bus CAN**********\n\n");
-        while(readCAN == false){ 
-            if (can1.write(CANMessage(id_can, trame, len_can))) {  
-                pc.printf("Message envoye !\n");       // display message
+        pc.printf("**********Envoi de la Requete meteo par bus CAN**********\n\n");
+        
+        //Tant que readCAN est faux,autrement dit tant qu'il n'y as pas de trame à lire sur le Bus CAN
+        while(readCAN == false){
+            //Envoi d'un requête météo avec l'ID 21 
+            if (can1.write(CANMessage(21, trame, 0))) {  
+                pc.printf("Message envoye !\n");
                 myled = !myled;
             }
             else{
                 pc.printf("Echec de l'envoi\n");
-                can1.reset();                                           // Reset CANbus if there is a problem
+                can1.reset();                                           // Reset le bus CAN en cas de problème
             }
-            wait(1.0);                                                  // wait a second
+            wait(1.0);                                                  // Paus de 1s
+            //readCAN reste faux si aucune trame n'est reçu, sinon devient vrai
             readCAN = can1.read(msg);
         }
-    
-    
+        
+        //Affiche la trame meteo reçue
         pc.printf("\nRecepetion en cours...");
-        // if message is available, read into msg
         pc.printf("\n");
         pc.printf("|******TRAME RECU**********|\n");
         printf("ID de la trame CAN   : %d\n", msg.id);
         printf("Nombre d'octets recus: %d\n", msg.len);   // display message data
         for(i=0;i<msg.len;i++) printf("  -> data[%d] = %d\n", i, msg.data[i]);
+        
+        //Décode la trame météo et affiche la valeurs des donnees reçues
+        //Affiche la température
         pc.printf(" ->Temperature = %2.2f degres celsius\n", meteo.getTemperature(msg));
+        //Affiche l'humidité
         pc.printf(" ->Humidite = %2.2f %%RH\n", meteo.getHumidite(msg));
+        //Affiche l'irradiance
         pc.printf(" ->Irradiance = %hu W/m2\n", meteo.getIrradiance(msg));
+        //Affiche la vitesse du vent
         pc.printf(" ->Vitesse du vent = %f m/s\n", meteo.getVitesseVent(msg));
+        //Affiche la direction du vent
         pc.printf(" ->Direction du vent = %u\n", meteo.getDirectionVent(msg));
         
-        myled = !myled;
-    
+        myled = !myled;//inverse l'état de la led
+        wait(5.0);//Attente de 5s avant de renvoyer uen requête météo
     }
-    
 }
\ No newline at end of file