Permet de créer, envoyer, filtrer et décrypter la trame meteo.
Dependents: Simulation_carte_maitresse
meteoCAN.cpp
- Committer:
- Station_Meteo_Laos
- Date:
- 2019-06-14
- Revision:
- 1:0a49398a7bb3
- Parent:
- 0:f442198ae6b0
- Child:
- 2:559043c0120e
File content as of revision 1:0a49398a7bb3:
#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; } bool meteoCAN::filtreID(uint16_t IDreceived, uint16_t IDtoFilter){ if(IDtoFilter == IDreceived) return true; else return false; }