Esta versión v6 pasa a ser el nuevo master. Funciona correctamente
Dependencies: ADXL345 Display1602 MSCFileSystem SDFileSystem mbed FATFileSystem
RingBuffer.cpp@2:cc4a43d806e2, 2014-06-06 (annotated)
- Committer:
- JuanManuelAmador
- Date:
- Fri Jun 06 08:52:28 2014 +0000
- Revision:
- 2:cc4a43d806e2
- Parent:
- 0:a5367bd4e404
Correci?n del baudrate de 112500 a 115200
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jjmedina | 0:a5367bd4e404 | 1 | #include "RingBuffer.h" |
jjmedina | 0:a5367bd4e404 | 2 | |
jjmedina | 0:a5367bd4e404 | 3 | Buffer::Buffer(int size) : bufSize(size), full(false), empty(true), windex(0), rindex(0) |
jjmedina | 0:a5367bd4e404 | 4 | { |
jjmedina | 0:a5367bd4e404 | 5 | data = std::vector<float>(bufSize); |
jjmedina | 0:a5367bd4e404 | 6 | itBeg = data.begin(); |
jjmedina | 0:a5367bd4e404 | 7 | itEnd = data.end(); |
jjmedina | 0:a5367bd4e404 | 8 | head = itBeg; |
jjmedina | 0:a5367bd4e404 | 9 | tail = itBeg; |
jjmedina | 0:a5367bd4e404 | 10 | } |
jjmedina | 0:a5367bd4e404 | 11 | |
jjmedina | 0:a5367bd4e404 | 12 | void Buffer::put(float val) |
jjmedina | 0:a5367bd4e404 | 13 | { |
jjmedina | 0:a5367bd4e404 | 14 | if(!full) |
jjmedina | 0:a5367bd4e404 | 15 | { |
jjmedina | 0:a5367bd4e404 | 16 | //std::cout << "Escribiendo " << val << " en " << windex << std::endl; |
jjmedina | 0:a5367bd4e404 | 17 | data[windex] = val; |
jjmedina | 0:a5367bd4e404 | 18 | windex++; |
jjmedina | 0:a5367bd4e404 | 19 | empty = false; |
jjmedina | 0:a5367bd4e404 | 20 | if(windex >= bufSize) |
jjmedina | 0:a5367bd4e404 | 21 | { |
jjmedina | 0:a5367bd4e404 | 22 | windex = 0; |
jjmedina | 0:a5367bd4e404 | 23 | } |
jjmedina | 0:a5367bd4e404 | 24 | if(windex == rindex) |
jjmedina | 0:a5367bd4e404 | 25 | { |
jjmedina | 0:a5367bd4e404 | 26 | full = true; |
jjmedina | 0:a5367bd4e404 | 27 | //std::cout << "Buffer lleno..." << std::endl; |
jjmedina | 0:a5367bd4e404 | 28 | } |
jjmedina | 0:a5367bd4e404 | 29 | } |
jjmedina | 0:a5367bd4e404 | 30 | } |
jjmedina | 0:a5367bd4e404 | 31 | |
jjmedina | 0:a5367bd4e404 | 32 | const float Buffer::get() |
jjmedina | 0:a5367bd4e404 | 33 | { |
jjmedina | 0:a5367bd4e404 | 34 | float temp; |
jjmedina | 0:a5367bd4e404 | 35 | if(!empty) |
jjmedina | 0:a5367bd4e404 | 36 | { |
jjmedina | 0:a5367bd4e404 | 37 | temp = data[rindex]; |
jjmedina | 0:a5367bd4e404 | 38 | //std::cout << "Leyendo " << temp << " de " << rindex << std::endl; |
jjmedina | 0:a5367bd4e404 | 39 | data[rindex] = 0; |
jjmedina | 0:a5367bd4e404 | 40 | full = false; |
jjmedina | 0:a5367bd4e404 | 41 | rindex++; |
jjmedina | 0:a5367bd4e404 | 42 | if(rindex >= bufSize) |
jjmedina | 0:a5367bd4e404 | 43 | { |
jjmedina | 0:a5367bd4e404 | 44 | rindex = 0; |
jjmedina | 0:a5367bd4e404 | 45 | } |
jjmedina | 0:a5367bd4e404 | 46 | if(rindex == windex) |
jjmedina | 0:a5367bd4e404 | 47 | { |
jjmedina | 0:a5367bd4e404 | 48 | empty = true; |
jjmedina | 0:a5367bd4e404 | 49 | //std::cout << "Buffer vacío. R-Index: " << rindex << std::endl; |
jjmedina | 0:a5367bd4e404 | 50 | } |
jjmedina | 0:a5367bd4e404 | 51 | } |
jjmedina | 0:a5367bd4e404 | 52 | return temp; |
jjmedina | 0:a5367bd4e404 | 53 | } |
jjmedina | 0:a5367bd4e404 | 54 | |
jjmedina | 0:a5367bd4e404 | 55 | const bool Buffer::isFull() |
jjmedina | 0:a5367bd4e404 | 56 | { |
jjmedina | 0:a5367bd4e404 | 57 | return full; |
jjmedina | 0:a5367bd4e404 | 58 | } |
jjmedina | 0:a5367bd4e404 | 59 | |
jjmedina | 0:a5367bd4e404 | 60 | const bool Buffer::isEmpty() |
jjmedina | 0:a5367bd4e404 | 61 | { |
jjmedina | 0:a5367bd4e404 | 62 | return empty; |
jjmedina | 0:a5367bd4e404 | 63 | } |
jjmedina | 0:a5367bd4e404 | 64 | |
jjmedina | 0:a5367bd4e404 | 65 | const int Buffer::getSize() |
jjmedina | 0:a5367bd4e404 | 66 | { |
jjmedina | 0:a5367bd4e404 | 67 | return bufSize; |
jjmedina | 0:a5367bd4e404 | 68 | } |
jjmedina | 0:a5367bd4e404 | 69 | |
jjmedina | 0:a5367bd4e404 | 70 | const int Buffer::getWritingIndex() |
jjmedina | 0:a5367bd4e404 | 71 | { |
jjmedina | 0:a5367bd4e404 | 72 | return windex; |
jjmedina | 0:a5367bd4e404 | 73 | } |
jjmedina | 0:a5367bd4e404 | 74 | |
jjmedina | 0:a5367bd4e404 | 75 | const int Buffer::getReadingIndex() |
jjmedina | 0:a5367bd4e404 | 76 | { |
jjmedina | 0:a5367bd4e404 | 77 | return rindex; |
jjmedina | 0:a5367bd4e404 | 78 | } |
jjmedina | 0:a5367bd4e404 | 79 | |
jjmedina | 0:a5367bd4e404 | 80 | /* |
jjmedina | 0:a5367bd4e404 | 81 | void Buffer::printBuffer() |
jjmedina | 0:a5367bd4e404 | 82 | { |
jjmedina | 0:a5367bd4e404 | 83 | std::cout << "Imprimiendo buffer..." << std::endl; |
jjmedina | 0:a5367bd4e404 | 84 | int k = 0; |
jjmedina | 0:a5367bd4e404 | 85 | for(std::vector<float>::iterator it = data.begin(); it != data.end(); ++it) |
jjmedina | 0:a5367bd4e404 | 86 | { |
jjmedina | 0:a5367bd4e404 | 87 | std::cout << "Elemento " << k++ << " es: " << *it << std::endl; |
jjmedina | 0:a5367bd4e404 | 88 | } |
jjmedina | 0:a5367bd4e404 | 89 | } |
jjmedina | 0:a5367bd4e404 | 90 | */ |
jjmedina | 0:a5367bd4e404 | 91 | |
jjmedina | 0:a5367bd4e404 | 92 |