Permet de créer, envoyer, filtrer et décrypter la trame meteo.
Dependents: Simulation_carte_maitresse
Diff: meteoCAN.cpp
- Revision:
- 5:a90b50a19ae4
- Parent:
- 4:caf7ef3d4d6e
--- 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); }