app4

Dependencies:   mbed-rtos mbed CRC16

Fork of S5info_APP2 by Éric Bisson

Revision:
8:5b87b1f9d91f
Child:
9:01be68364986
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uart.h	Mon Mar 06 22:22:02 2017 +0000
@@ -0,0 +1,36 @@
+#include <vector>
+#include "mbed.h"
+using std::vector;
+
+#define RETURN_EMPTYVECTOR(x) return vector<x>();
+const char PREAMBULE =  0b01010101;
+const char START =      0b01111110;
+const char END =        0b01111110;
+const char FLAGS =      0x00;
+const char MAX_LENGTH = 80;
+
+vector<char> uart_read(Serial& COM, Serial& pc)
+{
+    vector<char> result;
+
+    while (COM.readable())
+    {
+        result.push_back(COM.getc());
+        wait_ms(8); // 9600 bits/secondes, donc ~1ms par bit
+    }
+    if (result.size() > 7)
+    {
+        if (result[0] != PREAMBULE || 
+            result[1] != START ||
+            result[2] != result.size() - 7 ||
+            result.back() != END)
+        {
+            RETURN_EMPTYVECTOR(char);
+        }
+        
+        result.push_back('\0'); // end of string pour pouvoir l'afficher
+        
+        return vector<char>(&result[4], &result[result.size()-4]);
+    }
+    RETURN_EMPTYVECTOR(char);
+}
\ No newline at end of file