Projet Drone de surveillance du labo TRSE (INGESUP)
Dependencies: mbed PID ADXL345 Camera_LS_Y201 ITG3200 RangeFinder mbos xbee_lib Motor Servo
Diff: Service/Buffer_Trame.cpp
- Revision:
- 23:7f5681d8d5b5
- Parent:
- 22:d2adbcc3580d
- Child:
- 24:3462a304f9a0
--- a/Service/Buffer_Trame.cpp Wed Apr 03 09:11:38 2013 +0000 +++ b/Service/Buffer_Trame.cpp Wed Apr 03 10:36:21 2013 +0000 @@ -22,11 +22,80 @@ /* CONSRTRUCTEUR(S) */ C_FrameBuffer::C_FrameBuffer() { + m_frameBuffer = new frame [default_size]; + m_maxSize = default_size; + m_currentReadIndex = 0; + m_currentWriteIndex = 0; + } + C_FrameBuffer::C_FrameBuffer(unsigned int size) + { + m_maxSize = size; + m_frameBuffer = new frame [m_maxSize]; + m_currentReadIndex = 0; + m_currentWriteIndex = 0; } /* DESTRUCTEUR */ C_FrameBuffer::~C_FrameBuffer() { + delete [] m_frameBuffer; + m_maxSize = 0; + m_currentReadIndex = 0; + m_currentWriteIndex = 0; + } + /* Propriétés */ + void C_FrameBuffer::frameBuffer(frame newFrame) + { + m_frameBuffer[m_currentWriteIndex] = newFrame; + m_currentWriteIndex++; + + if(m_currentWriteIndex >= m_maxSize) m_currentWriteIndex = 0; + } + + frame C_FrameBuffer::frameBuffer(void) + { + frame newFrame = m_frameBuffer[m_currentReadIndex]; + m_currentReadIndex++; + + if(m_currentReadIndex >= m_maxSize) m_currentReadIndex = 0; + + return newFrame; + } + + frame C_FrameBuffer::frameBuffer(unsigned int index) + { + if(index >= m_maxSize) index = m_maxSize; + + return m_frameBuffer[index]; + } + + unsigned int C_FrameBuffer::maxSize(void) + { + return m_maxSize; + } + + unsigned int C_FrameBuffer::currentReadIndex(void) + { + return m_currentReadIndex; + } + + void C_FrameBuffer::currentReadIndex(unsigned int newIndex) + { + if(newIndex >= m_maxSize) newIndex = m_maxSize; + + m_currentReadIndex = newIndex; + } + + unsigned int C_FrameBuffer::currentWriteIndex(void) + { + return m_currentWriteIndex; + } + + void C_FrameBuffer::currentWriteIndex(unsigned int newIndex) + { + if(newIndex >= m_maxSize) newIndex = m_maxSize; + + m_currentWriteIndex = newIndex; } \ No newline at end of file