Permet de créer, envoyer, filtrer et décrypter la trame meteo.

Dependents:   Simulation_carte_maitresse

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