Console CAN 2.0 update du code testcan1

Dependencies:   mbed

Fork of testCAN1 by RaC2018

Fonctionnement

/!\/!\/!\Il est conseillé d'utiliser putty ou un terminal acceptant la touche entée comme un caractère, sinon il sera nécessaire de changer le code en remplaçant '\r' par un caractère de votre choix /!\/!\/!\

1 - La console vous demande la valeur de l'identificateur en hexadécimal(il faut donc entrer la valeur et valider par entrée)

2 - Elle demande le nombre d'octets à envoyer, il faut choisir le nombre d'octets à envoyer entre 0(pas d'octets) et 8 octets. Il n'y a pas besoin de valider, la validation se fait une fois le chiffre appuyé.

3 (si il y a plus de 0 octets) - Elle vous demandera la valeur à attribuer à chaque octets.

4 - Elle demande quel sera l'état du bit du RTR(0-1) 1 ==> Requête 0 ==> Donnée.

La validation se fait automatiquement

5 - Envoie les données et fait une capture de retour(à améliorer car ce n'est pas encore au point)

6 - Fait un résumé des trames capturées.

7 - Retour au point de départ (1)

Revision:
0:1ab5fdb4fa56
Child:
1:4d70e593345f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Feb 09 20:49:17 2018 +0000
@@ -0,0 +1,47 @@
+#include "mbed.h"
+ // LR 9/02/18
+ //
+ // bus CAN
+ //
+ // Ce programme genere une trame 
+ // id=00, data= 01 20 , longueur = 2, can standard (11 bits id)
+ //
+ // testé à l'analyseur logique = OK !!
+ 
+Ticker ticker;
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+CAN can1(p9, p10,1000000);// on definit pin et debit
+CAN can2(p30, p29, 1000000);
+char counter = 0;
+char octet_emis[8]  = "ABCD";
+int id = 0x539 ;
+  
+void send() {
+    
+    printf("send()\n");
+    id = 0x00 ;
+    octet_emis[0] = 0x01 ;
+    octet_emis[1] = 0x20 ;
+    if(can1.write(CANMessage(id, octet_emis, 2,  CANData, CANStandard ))) {
+        printf("wloop()\n");
+        counter++;
+        printf("Message sent: %d\n", counter);
+    } 
+    led1 = !led1;
+}
+ 
+int main() {
+    
+    printf("main()\n");
+    ticker.attach(&send, 1);
+    CANMessage msg;
+    while(1) {
+        printf("loop()\n");
+        if(can2.read(msg)) {
+            printf("Message received: %d\n", msg.data[0]);
+            led2 = !led2;
+        } 
+        wait(0.2);
+    }
+}
\ No newline at end of file