![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
app4
Dependencies: mbed-rtos mbed CRC16
Fork of S5info_APP2 by
Diff: uart.h
- Revision:
- 8:5b87b1f9d91f
- Child:
- 9:01be68364986
diff -r 5501dbea5650 -r 5b87b1f9d91f uart.h --- /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