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

Dependencies:   mbed meteoCAN

Files at this revision

API Documentation at this revision

Comitter:
Station_Meteo_Laos
Date:
Sat Jun 29 20:16:17 2019 +0000
Parent:
1:265dc028a37d
Commit message:
Permet de creer, envoyer, filtrer et decrypter la trame meteo.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
meteoCAN.lib Show annotated file Show diff for this revision Revisions of this file
--- 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
--- a/meteoCAN.lib	Mon Jun 17 11:32:19 2019 +0000
+++ b/meteoCAN.lib	Sat Jun 29 20:16:17 2019 +0000
@@ -1,1 +1,1 @@
-meteoCAN#caf7ef3d4d6e
+https://os.mbed.com/users/Station_Meteo_Laos/code/meteoCAN/#a90b50a19ae4