Esta versión v6 pasa a ser el nuevo master. Funciona correctamente

Dependencies:   ADXL345 Display1602 MSCFileSystem SDFileSystem mbed FATFileSystem

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?

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