Julia DESMAZES / Mbed 2 deprecated Hexapode

Dependencies:   mbed BLE_API X_NUCLEO_IDB0XA1 MODSERIAL

Revision:
2:ca6d8d1f77d4
Parent:
1:8bab9152933e
Child:
3:13bd725bd47b
--- a/COM/LOGGER.cpp	Thu Aug 11 12:18:13 2016 +0000
+++ b/COM/LOGGER.cpp	Thu Aug 18 14:29:47 2016 +0000
@@ -2,11 +2,28 @@
 #include <stdio.h>
 #include <cmath>
 #include <cstdlib>
-
+#define BUFFER_LENGTH 32
 Logger* Logger::_instance = NULL;
 
 Logger::Logger() {
-    serial = new Serial(SERIAL_TX, SERIAL_RX);
+    serial = new MODSERIAL(SERIAL_TX, SERIAL_RX, BUFFER_LENGTH); //32 bitd long 
+    serial->attach(&rxCallback, MODSERIAL::RxIrq);
+    buffer_index = 0 ;
+    buffer = new std::queue<char>;
+}
+void Logger::rxCallback(MODSERIAL_IRQ_INFO *q) {
+    char c =serial->getc();
+    if(c>='0'&&c<='9')
+    {
+    if(buffer_index < 32 )
+    else{ buffer_index = 0;
+    buffer= new std::queue<char>;
+    }
+    // il nous reste de la place dans le buffer
+    buffer_index++;
+    buffer.push(c);
+        }
+        }
 }
 
 Logger* Logger::Instance() {
@@ -59,3 +76,16 @@
    sprintf(c,"%d",i);
     return string(c);
 }
+int Logger::get_buffer_index()
+{return buffer_index;
+}
+void Logger::flush_buffer()
+{
+    if(buffer_index>0)
+    {
+     buffer= new std::queue<char>;
+     buffer_index=0;   
+    }
+    else log("Logger::flush_buffer Erreur le buffer est déjà vide");
+    }
+}
\ No newline at end of file