Station Meteo Laos / Mbed 2 deprecated Simulation_carte_maitresse

Dependencies:   mbed meteoCAN

Revision:
0:ddcef4072662
Child:
1:265dc028a37d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jun 17 10:27:49 2019 +0000
@@ -0,0 +1,85 @@
+#include "mbed.h"
+
+
+#define can_len 8
+
+Serial pc(USBTX, USBRX, 115200);          // tx, rx for Tera Term output
+
+DigitalOut myled(LED1);            // LED1 displays messsage sent Status
+CAN can1(PA_11, PA_12);            // CAN interface
+CANMessage msg; // create empty CAN message
+
+
+int main() {
+    
+    uint16_t id_can, len_can=0, i, octet;
+    char trame[8];
+    uint8_t ok=0;
+    
+    do{
+        pc.printf("\nTaper 1 pour envoyer un message CAN custom ou 0 pour afficher le contenu des trames CAN sur le bus : ");
+        scanf("%u",&ok);
+        pc.printf("%u", ok);
+    }while(ok>1);
+    
+    pc.printf("\n");
+    
+    if(ok == 1){
+        
+        pc.printf("Entrez l'ID CAN de votre trame : ");
+        pc.printf(">");
+        scanf("%hu",&id_can);
+        pc.printf("%hu", id_can);
+        pc.printf("\n");
+        
+        pc.printf("Entrez le nombre d'octet de donnees de votre trame (de 0 a 8) : ");
+        do{
+            pc.printf(">");
+            scanf("%hu",&len_can);
+        }while(8<len_can);
+        pc.printf("%hu", len_can);
+        pc.printf("\n");
+        
+        if(len_can != 0){
+            pc.printf("Entrez successivement chaque octet de donnee (de 0 a 255) :\n");
+            for(i=0;i<len_can;i++){
+                pc.printf(" -> Octet[%hu] : ",i);
+                do{
+                pc.printf(">");
+                scanf("%hu",&octet);
+                }while(255<octet);
+                trame[i] = octet;
+                pc.printf("%hu", trame[i]);
+                pc.printf("\n");
+            }
+            pc.printf("\n");
+        }
+           
+        pc.printf("**********Envoi de la trame par bus CAN**********\n\n");
+               
+        if (can1.write(CANMessage(id_can, trame, len_can))) {  
+            pc.printf("Message envoye !\n");       // display message
+            myled = !myled;
+        }
+        else{
+            pc.printf("Echec de l'envoi\n");
+            can1.reset();                                           // Reset CANbus if there is a problem
+        }
+        wait(1.0);                                                  // wait a second
+    }
+    else{
+        pc.printf("\nRecepetion en cours...");
+        while(1){
+            if(can1.read(msg)) {          // if message is available, read into msg
+                pc.printf("\n");
+                pc.printf("|******TRAME RECU**********|\n");
+                printf("ID de la trame CAN   : %d\n", msg.id);
+                printf("Nombre d'octets recus: %d\n", msg.len);   // display message data
+                for(i=0;i<msg.len;i++) printf("  -> data[%d] = %d\n", i, msg.data[i]);
+            }
+            myled = !myled;
+        }
+    }
+        
+  
+}
\ No newline at end of file