Dependencies:   mbed

SerialRazor.cpp

Committer:
triff
Date:
2010-10-12
Revision:
0:87f191bdb9ab

File content as of revision 0:87f191bdb9ab:


#include "mbed.h"
#include "SerialRazor.h"

SerialRazor::SerialRazor( size_t bufferSize, PinName tx, PinName rx ) : Serial(  tx,  rx )  {

    Serial::baud(57600);
    attach( this, &SerialRazor::handleInterrupt );
    m_buff = (char *) malloc( bufferSize );
    m_buffSize = bufferSize;
}



SerialRazor::~SerialRazor()
{
    if( m_buff )
        free( m_buff );
}

void SerialRazor::handleInterrupt()
{
    
    while( Serial::readable())
    {
        for(int i=0; i< m_buffSize; i++) {
        m_buff[i] = Serial::getc();
        if(m_buff[i] == '\n') {
            m_buff[i] = 0;
            sscanf(m_buff,"!ANG:%f,%f,%f", &roll, &pitch, &yaw); 
            return;
        } 
        }   
       
    }
}



float SerialRazor::getRoll(void){

    return roll;

}

float SerialRazor::getPitch(void){

    return pitch;

}

float SerialRazor::getYaw(void){

    return yaw;

}