ok

Dependencies:   mbed

Revision:
0:6c60dedc1d7a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Feb 12 14:46:02 2019 +0000
@@ -0,0 +1,63 @@
+#include "mbed.h"
+
+Serial centrale(p9,p10);
+Serial PC(USBTX,USBRX);
+
+void lecture_centrale(int *ptr1, int *ptr2);
+
+int main() {
+    int vitesse,gouvernail;
+    centrale.baud(9600);
+    PC.baud(460800);
+    
+    while(1) {
+        lecture_centrale(&vitesse,&gouvernail);
+        PC.printf("Vmoteur : %d\n\rDirMoteur : %d\n\r",vitesse,gouvernail);
+    }
+}
+
+void lecture_centrale(int* ptr1, int* ptr2)
+{
+    char fin=0;
+    char etat = 0;
+    char a,i=0;
+    char buffer[30];
+    
+    while(fin==0)
+    {
+if (centrale.readable()) 
+        {  // attention PC.readable reste à 1 tant qu'il n'y a pas eu de getc qui vide le buffer
+            a=centrale.getc();
+            
+        switch(etat)
+        {
+            case 0 :
+            if(a=='$')//On attend le début d'une trame
+            {
+                buffer[0] = '$';
+                i=1;
+                etat = 1;
+            }
+            break;
+            
+            case 1 ://Après le début d'une trame, on récupère la trame en entier et on l'analyse
+            buffer[i] = a;
+            i++;
+            if(a=='*')
+            {
+                sscanf(buffer,"$%d|%d*",ptr1,ptr2);
+                fin = 1;
+                i=0;
+                etat=0;
+            }
+            break;
+            
+            default :
+            etat = 0;
+            break;
+            
+
+           }
+           }
+           }
+           }
\ No newline at end of file