Permet de créer, envoyer, filtrer et décrypter la trame meteo.
Dependents: Simulation_carte_maitresse
Diff: meteoCAN.cpp
- Revision:
- 0:f442198ae6b0
- Child:
- 1:0a49398a7bb3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meteoCAN.cpp Thu Jun 13 11:02:53 2019 +0000 @@ -0,0 +1,39 @@ +#include "meteoCAN.h" +#include "mbed.h" + +meteoCAN::meteoCAN(PinName rd, PinName td):can1(rd, td){} + +// meteoCAN +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]; + + temp = uint16_t(temperature*100); + trame[0] = temp & 255; //temperature octet faible + trame[1] = temp >> 8; //temperature octet fort + + humi = uint16_t(humidite*10); + trame[2] = humi & 255; //humidite octet faible + trame[3] = humi >> 8; //humidite octet fort + + irra = uint16_t(irradiance); + trame[4] = irra & 255; //irradiance octet faible + trame[5] = irra >> 8; //irradiance octet fort + + vite = uint16_t(vitesse_vent*100); + trame[6] = vite & 255; //vitesse_vent octet faible + trame[7] = vite >> 8; //vitesse_vent octet fort + + trame[3] = (direction_vent<<4 & 0xF0) + (trame[3] & 0x0F); + + // send value to CAN bus and monitor return value to check if CAN + // message was sent successfully. If so display, increment and toggle + if (can1.write(CANMessage(canID, trame, 8))) { + } + else{ + can1.reset(); // Reset CANbus if there is a problem + } + wait(1.0); // wait a second + + return true; +} \ No newline at end of file