Station Meteo Laos
/
Simulation_carte_maitresse
Permet de créer, envoyer, filtrer et decrypter la trame meteo.
Revision 2:4a57fcb1ab30, committed 2019-06-29
- 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 |
diff -r 265dc028a37d -r 4a57fcb1ab30 main.cpp --- 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
diff -r 265dc028a37d -r 4a57fcb1ab30 meteoCAN.lib --- 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