Skytraq S1315F-RAW-EVK Logger

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers tserialbuffer.h Source File

tserialbuffer.h

00001 
00002 #ifndef __TSERIALBUFFER_H
00003 #define __TSERIALBUFFER_H
00004 
00005 #include "mbed.h"
00006 #include "libT/portable/tringbuffer.h"
00007 #include "libT/portable/tversion.h"
00008 
00009 namespace libT {
00010 
00011 class tSerialBuffer : public tRingBuffer<unsigned char> , public Serial , public tVersion {
00012 
00013 public:
00014     tSerialBuffer(PinName _tx, PinName _rx) : Serial(_tx,_rx) , tVersion(0x20100720/* 2010-07-20 */,0x00000001UL){}
00015 
00016     void recvStart(void){
00017         Serial::attach(this,&tSerialBuffer::recvHandler,Serial::RxIrq);
00018     }
00019     void recvStop(void){
00020         Serial::attach(0,Serial::RxIrq);
00021     }
00022 
00023     int readable(void){
00024         return tRingBuffer::readable();
00025     }
00026 
00027     int getc(void){
00028         unsigned char _c;
00029         int retval = -1;
00030         if(tRingBuffer::readable()){
00031             (void)tRingBuffer::read(&_c);
00032             retval = static_cast<int>(_c);
00033         }
00034         return retval;
00035     }
00036 
00037 private:
00038     void recvHandler(void){
00039         if(Serial::readable()){
00040             tRingBuffer::write(static_cast<unsigned char>(Serial::getc()));
00041         }
00042     }
00043 
00044 };
00045 
00046 };
00047 
00048 #endif /* __TSERIALBUFFER_H */
00049