Projet Drone de surveillance du labo TRSE (INGESUP)
Dependencies: mbed PID ADXL345 Camera_LS_Y201 ITG3200 RangeFinder mbos xbee_lib Motor Servo
Service/Buffer_Trame.cpp
- Committer:
- IngesupMbed01
- Date:
- 2013-04-03
- Revision:
- 23:7f5681d8d5b5
- Parent:
- 22:d2adbcc3580d
- Child:
- 24:3462a304f9a0
File content as of revision 23:7f5681d8d5b5:
/* Copyright (c) 2012 - 2013 AUTEUR * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Description : Cette classe contient les fonctionnalités d'un buffer de trame. * Input * Output */ #include "Buffer_Trame.h" /* 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; }