Permet de créer, envoyer, filtrer et décrypter la trame meteo.
Dependents: Simulation_carte_maitresse
Revision 5:a90b50a19ae4, committed 2019-06-29
- Comitter:
- Station_Meteo_Laos
- Date:
- Sat Jun 29 20:14:50 2019 +0000
- Parent:
- 4:caf7ef3d4d6e
- Commit message:
- Permet de creer, envoyer, filtrer et decrypter la trame meteo.
Changed in this revision
meteoCAN.cpp | Show annotated file Show diff for this revision Revisions of this file |
meteoCAN.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r caf7ef3d4d6e -r a90b50a19ae4 meteoCAN.cpp --- a/meteoCAN.cpp Fri Jun 14 09:47:35 2019 +0000 +++ b/meteoCAN.cpp Sat Jun 29 20:14:50 2019 +0000 @@ -1,9 +1,10 @@ #include "meteoCAN.h" #include "mbed.h" +//Notre Constructeur, prend en argument les pins utiliser pour communiquer en CAN meteoCAN::meteoCAN(PinName rd, PinName td):can1(rd, td){} -// meteoCAN +//Créer et envoie la trame météo*, avec l’ID donnée en argument. bool meteoCAN::send(uint16_t canID, float temperature, float humidite, float irradiance, float vitesse_vent, char direction_vent){ uint16_t temp, humi, irra, vite; char trame[50]; @@ -38,27 +39,33 @@ return true; } +//Renvoie vrai si l’ID du message CAN reçu correspond à l’ID donnée en argument. Renvoie faux sinon bool meteoCAN::filtreID(CANMessage &msg, uint16_t IDtoFilter){ if(IDtoFilter == msg.id) return true; else return false; } +//Décrypte la trame météo renvoie en float la température. float meteoCAN::getTemperature(CANMessage &msg){ return float(float(( msg.data[0] & 0xFF) + ( msg.data[1]<<8 & 0xFF00))/100); } +//Décrypte la trame météo renvoie en float l’humidite. float meteoCAN::getHumidite(CANMessage &msg){ return float(float((msg.data[2] & 0xFF) + (msg.data[3]<<8 & 0x0F00))/10); } +//Décrypte la trame météo renvoie uint16_t l’irradiance. uint16_t meteoCAN::getIrradiance(CANMessage &msg){ return uint16_t((msg.data[4] & 0xFF) + (msg.data[5]<<8 & 0xFF00)); } +//Décrypte la trame météo renvoie en float la vitesse du vent. float meteoCAN::getVitesseVent(CANMessage &msg){ return float(float((msg.data[6] & 0xFF) + (msg.data[7]<<8 & 0xFF00))/100); } +//Décrypte la trame météo renvoie en uint8_t la direction du vent. uint8_t meteoCAN::getDirectionVent(CANMessage &msg){ return uint8_t((msg.data[3] & 0xF0)>>4); }
diff -r caf7ef3d4d6e -r a90b50a19ae4 meteoCAN.h --- a/meteoCAN.h Fri Jun 14 09:47:35 2019 +0000 +++ b/meteoCAN.h Sat Jun 29 20:14:50 2019 +0000 @@ -6,18 +6,25 @@ class meteoCAN { public: + //Notre Constructeur, prend en argument les pins utiliser pour communiquer en CAN meteoCAN(PinName rd, PinName td); //CAN (PinName rd, PinName td) + //Créer et envoie la trame météo*, avec l’ID donnée en argument. bool send(uint16_t canID, float temperature, float humidite, float irradiance, float vitesse_vent, char direction_vent); + //Renvoie vrai si l’ID du message CAN reçu correspond à l’ID donnée en argument. Renvoie faux sinon bool filtreID(CANMessage &msg, uint16_t IDtoFilter); + //Décrypte la trame météo renvoie en float la température. float getTemperature(CANMessage &msg); + //Décrypte la trame météo renvoie en float l’humidite. float getHumidite(CANMessage &msg); + //Décrypte la trame météo renvoie uint16_t l’irradiance. uint16_t getIrradiance(CANMessage &msg); + //Décrypte la trame météo renvoie en float la vitesse du vent. float getVitesseVent(CANMessage &msg); + //Décrypte la trame météo renvoie en uint8_t la direction du vent. uint8_t getDirectionVent(CANMessage &msg); private: CAN can1; - //CANMessage msg; }; #endif \ No newline at end of file