Programa mbed1 excelencia
Dependencies: mbed
RingBuffer/Bufferinguint.cpp
- Committer:
- JuanManuelAmador
- Date:
- 2017-01-18
- Revision:
- 0:a5908bca4740
File content as of revision 0:a5908bca4740:
#include "Bufferinguint.h" Bufferinguint::Bufferinguint() { for(int i = 0; i < BUFFERSIZE; i++){ data[i] = 0; } windex = 0; rindex = 0; full = false; empty = true; bufSize = BUFFERSIZE; } void Bufferinguint::put(unsigned int val) { if(!full) { data[windex] = val; windex++; empty = false; if(windex >= bufSize) { windex = 0; } if(getDif() >= bufSize - 1){ full = true; } /*if(windex >= rindex) { full = true; }*/ } } unsigned int Bufferinguint::get() { unsigned int temp = 0; if(!empty) { temp = data[rindex]; data[rindex] = 0; full = false; rindex++; if(rindex >= bufSize) { rindex = 0; } if(getDif() == 0){ empty = true; } /*if(rindex >= windex) { empty = true; }*/ } return temp; } bool Bufferinguint::isFull() { return full; } bool Bufferinguint::isEmpty() { return empty; } int Bufferinguint::getSize() { return bufSize; } unsigned int Bufferinguint::getWritingIndex() { return windex; } unsigned int Bufferinguint::getReadingIndex() { return rindex; } unsigned int Bufferinguint::getDif() { unsigned int dif = 0; if((int)(windex-rindex)>=0) { dif = windex-rindex; } else { dif = bufSize+windex-rindex; } return dif; }