An array 3 sized circle buffer
CircleBuffer.cpp
- Committer:
- oprospero
- Date:
- 2013-10-17
- Revision:
- 1:8c7e5801d763
- Parent:
- 0:410ebbfd5e14
File content as of revision 1:8c7e5801d763:
#include "CircleBuffer.h" CircleBuffer::CircleBuffer(void) { index = 0; for (int i = 0; i < 3; i++) { buffersum[i] = 0; for (int j = 0; j < BUFFERSIZE; j++) { buffer[j][i] = 0; } } } void CircleBuffer::queue(float value[3]) { index++; if (index >= BUFFERSIZE) { index = 0; } for (int i = 0; i < 3 ; i++) { buffersum[i] -= buffer[index][i]; buffersum[i] += value[i]; buffer[index][i] = value[i]; } } void CircleBuffer::read(float rawfilter[3]) { // rawfilter[0] = buffersum[0] / BUFFERSIZE; // rawfilter[1] = buffersum[1] / BUFFERSIZE; // rawfilter[2] = buffersum[2] / BUFFERSIZE; rawfilter[0] = (buffersum[0] + buffer[index][0]) / (BUFFERSIZE + 1); rawfilter[1] = (buffersum[1] + buffer[index][1]) / (BUFFERSIZE + 1); rawfilter[2] = (buffersum[2] + buffer[index][2]) / (BUFFERSIZE + 1); }