Dependencies:   mbed

Committer:
triff
Date:
Tue Oct 12 13:26:58 2010 +0000
Revision:
0:87f191bdb9ab

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
triff 0:87f191bdb9ab 1
triff 0:87f191bdb9ab 2 #include "mbed.h"
triff 0:87f191bdb9ab 3 #include "SerialRazor.h"
triff 0:87f191bdb9ab 4
triff 0:87f191bdb9ab 5 SerialRazor::SerialRazor( size_t bufferSize, PinName tx, PinName rx ) : Serial( tx, rx ) {
triff 0:87f191bdb9ab 6
triff 0:87f191bdb9ab 7 Serial::baud(57600);
triff 0:87f191bdb9ab 8 attach( this, &SerialRazor::handleInterrupt );
triff 0:87f191bdb9ab 9 m_buff = (char *) malloc( bufferSize );
triff 0:87f191bdb9ab 10 m_buffSize = bufferSize;
triff 0:87f191bdb9ab 11 }
triff 0:87f191bdb9ab 12
triff 0:87f191bdb9ab 13
triff 0:87f191bdb9ab 14
triff 0:87f191bdb9ab 15 SerialRazor::~SerialRazor()
triff 0:87f191bdb9ab 16 {
triff 0:87f191bdb9ab 17 if( m_buff )
triff 0:87f191bdb9ab 18 free( m_buff );
triff 0:87f191bdb9ab 19 }
triff 0:87f191bdb9ab 20
triff 0:87f191bdb9ab 21 void SerialRazor::handleInterrupt()
triff 0:87f191bdb9ab 22 {
triff 0:87f191bdb9ab 23
triff 0:87f191bdb9ab 24 while( Serial::readable())
triff 0:87f191bdb9ab 25 {
triff 0:87f191bdb9ab 26 for(int i=0; i< m_buffSize; i++) {
triff 0:87f191bdb9ab 27 m_buff[i] = Serial::getc();
triff 0:87f191bdb9ab 28 if(m_buff[i] == '\n') {
triff 0:87f191bdb9ab 29 m_buff[i] = 0;
triff 0:87f191bdb9ab 30 sscanf(m_buff,"!ANG:%f,%f,%f", &roll, &pitch, &yaw);
triff 0:87f191bdb9ab 31 return;
triff 0:87f191bdb9ab 32 }
triff 0:87f191bdb9ab 33 }
triff 0:87f191bdb9ab 34
triff 0:87f191bdb9ab 35 }
triff 0:87f191bdb9ab 36 }
triff 0:87f191bdb9ab 37
triff 0:87f191bdb9ab 38
triff 0:87f191bdb9ab 39
triff 0:87f191bdb9ab 40 float SerialRazor::getRoll(void){
triff 0:87f191bdb9ab 41
triff 0:87f191bdb9ab 42 return roll;
triff 0:87f191bdb9ab 43
triff 0:87f191bdb9ab 44 }
triff 0:87f191bdb9ab 45
triff 0:87f191bdb9ab 46 float SerialRazor::getPitch(void){
triff 0:87f191bdb9ab 47
triff 0:87f191bdb9ab 48 return pitch;
triff 0:87f191bdb9ab 49
triff 0:87f191bdb9ab 50 }
triff 0:87f191bdb9ab 51
triff 0:87f191bdb9ab 52 float SerialRazor::getYaw(void){
triff 0:87f191bdb9ab 53
triff 0:87f191bdb9ab 54 return yaw;
triff 0:87f191bdb9ab 55
triff 0:87f191bdb9ab 56 }
triff 0:87f191bdb9ab 57