![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
app4
Dependencies: mbed-rtos mbed CRC16
Fork of S5info_APP2 by
uart.h@8:5b87b1f9d91f, 2017-03-06 (annotated)
- Committer:
- ericbisson
- Date:
- Mon Mar 06 22:22:02 2017 +0000
- Revision:
- 8:5b87b1f9d91f
- Child:
- 9:01be68364986
lis le message
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ericbisson | 8:5b87b1f9d91f | 1 | #include <vector> |
ericbisson | 8:5b87b1f9d91f | 2 | #include "mbed.h" |
ericbisson | 8:5b87b1f9d91f | 3 | using std::vector; |
ericbisson | 8:5b87b1f9d91f | 4 | |
ericbisson | 8:5b87b1f9d91f | 5 | #define RETURN_EMPTYVECTOR(x) return vector<x>(); |
ericbisson | 8:5b87b1f9d91f | 6 | const char PREAMBULE = 0b01010101; |
ericbisson | 8:5b87b1f9d91f | 7 | const char START = 0b01111110; |
ericbisson | 8:5b87b1f9d91f | 8 | const char END = 0b01111110; |
ericbisson | 8:5b87b1f9d91f | 9 | const char FLAGS = 0x00; |
ericbisson | 8:5b87b1f9d91f | 10 | const char MAX_LENGTH = 80; |
ericbisson | 8:5b87b1f9d91f | 11 | |
ericbisson | 8:5b87b1f9d91f | 12 | vector<char> uart_read(Serial& COM, Serial& pc) |
ericbisson | 8:5b87b1f9d91f | 13 | { |
ericbisson | 8:5b87b1f9d91f | 14 | vector<char> result; |
ericbisson | 8:5b87b1f9d91f | 15 | |
ericbisson | 8:5b87b1f9d91f | 16 | while (COM.readable()) |
ericbisson | 8:5b87b1f9d91f | 17 | { |
ericbisson | 8:5b87b1f9d91f | 18 | result.push_back(COM.getc()); |
ericbisson | 8:5b87b1f9d91f | 19 | wait_ms(8); // 9600 bits/secondes, donc ~1ms par bit |
ericbisson | 8:5b87b1f9d91f | 20 | } |
ericbisson | 8:5b87b1f9d91f | 21 | if (result.size() > 7) |
ericbisson | 8:5b87b1f9d91f | 22 | { |
ericbisson | 8:5b87b1f9d91f | 23 | if (result[0] != PREAMBULE || |
ericbisson | 8:5b87b1f9d91f | 24 | result[1] != START || |
ericbisson | 8:5b87b1f9d91f | 25 | result[2] != result.size() - 7 || |
ericbisson | 8:5b87b1f9d91f | 26 | result.back() != END) |
ericbisson | 8:5b87b1f9d91f | 27 | { |
ericbisson | 8:5b87b1f9d91f | 28 | RETURN_EMPTYVECTOR(char); |
ericbisson | 8:5b87b1f9d91f | 29 | } |
ericbisson | 8:5b87b1f9d91f | 30 | |
ericbisson | 8:5b87b1f9d91f | 31 | result.push_back('\0'); // end of string pour pouvoir l'afficher |
ericbisson | 8:5b87b1f9d91f | 32 | |
ericbisson | 8:5b87b1f9d91f | 33 | return vector<char>(&result[4], &result[result.size()-4]); |
ericbisson | 8:5b87b1f9d91f | 34 | } |
ericbisson | 8:5b87b1f9d91f | 35 | RETURN_EMPTYVECTOR(char); |
ericbisson | 8:5b87b1f9d91f | 36 | } |