app4

Dependencies:   mbed-rtos mbed CRC16

Fork of S5info_APP2 by Éric Bisson

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?

UserRevisionLine numberNew 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 }