app4

Dependencies:   mbed-rtos mbed CRC16

Fork of S5info_APP2 by Éric Bisson

Revision:
26:6ffbf3161f6f
Parent:
25:d0c348c3c85d
--- a/uart.h	Tue Mar 07 17:25:16 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#include <vector>
-#include "mbed.h"
-#include "CRC16.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;
-CRC16 mycrc16;
-
-vector<char> uart_read(Serial& COM)
-{
-    vector<char> result;
-
-    while (COM.readable())
-    {
-        result.push_back(COM.getc());
-        wait_ms(1); // 9600 bits/secondes, donc ~0.1ms par bit
-    }
-    if (result.size() > 7)
-    {
-        // Validations de base
-        if (result[0] != PREAMBULE || 
-            result[1] != START ||
-            result[2] != result.size() - 7 ||
-            result.back() != END)
-        {
-            RETURN_EMPTYVECTOR(char);
-        }
-        
-        // Calcul du CRC
-        unsigned short currentCRC = result[result.size()-2] + result[result.size()-3]<<8;
-        
-        vector<char> charge_utile(&result[4], &result[result.size()-4]);
-        
-        if (currentCRC != mycrc16.calculateCRC16(&charge_utile[0], charge_utile.size()))
-        {
-            RETURN_EMPTYVECTOR(char);
-        }
-        
-        return charge_utile;
-    }
-    RETURN_EMPTYVECTOR(char);
-}
\ No newline at end of file