Skytraq S1315F-RAW-EVK Logger

Dependencies:   TextLCD mbed

Committer:
tosihisa
Date:
Sat Dec 18 11:17:21 2010 +0000
Revision:
0:e0ec137da369
1st release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tosihisa 0:e0ec137da369 1
tosihisa 0:e0ec137da369 2 #ifndef __TSERIALBUFFER_H
tosihisa 0:e0ec137da369 3 #define __TSERIALBUFFER_H
tosihisa 0:e0ec137da369 4
tosihisa 0:e0ec137da369 5 #include "mbed.h"
tosihisa 0:e0ec137da369 6 #include "libT/portable/tringbuffer.h"
tosihisa 0:e0ec137da369 7 #include "libT/portable/tversion.h"
tosihisa 0:e0ec137da369 8
tosihisa 0:e0ec137da369 9 namespace libT {
tosihisa 0:e0ec137da369 10
tosihisa 0:e0ec137da369 11 class tSerialBuffer : public tRingBuffer<unsigned char> , public Serial , public tVersion {
tosihisa 0:e0ec137da369 12
tosihisa 0:e0ec137da369 13 public:
tosihisa 0:e0ec137da369 14 tSerialBuffer(PinName _tx, PinName _rx) : Serial(_tx,_rx) , tVersion(0x20100720/* 2010-07-20 */,0x00000001UL){}
tosihisa 0:e0ec137da369 15
tosihisa 0:e0ec137da369 16 void recvStart(void){
tosihisa 0:e0ec137da369 17 Serial::attach(this,&tSerialBuffer::recvHandler,Serial::RxIrq);
tosihisa 0:e0ec137da369 18 }
tosihisa 0:e0ec137da369 19 void recvStop(void){
tosihisa 0:e0ec137da369 20 Serial::attach(0,Serial::RxIrq);
tosihisa 0:e0ec137da369 21 }
tosihisa 0:e0ec137da369 22
tosihisa 0:e0ec137da369 23 int readable(void){
tosihisa 0:e0ec137da369 24 return tRingBuffer::readable();
tosihisa 0:e0ec137da369 25 }
tosihisa 0:e0ec137da369 26
tosihisa 0:e0ec137da369 27 int getc(void){
tosihisa 0:e0ec137da369 28 unsigned char _c;
tosihisa 0:e0ec137da369 29 int retval = -1;
tosihisa 0:e0ec137da369 30 if(tRingBuffer::readable()){
tosihisa 0:e0ec137da369 31 (void)tRingBuffer::read(&_c);
tosihisa 0:e0ec137da369 32 retval = static_cast<int>(_c);
tosihisa 0:e0ec137da369 33 }
tosihisa 0:e0ec137da369 34 return retval;
tosihisa 0:e0ec137da369 35 }
tosihisa 0:e0ec137da369 36
tosihisa 0:e0ec137da369 37 private:
tosihisa 0:e0ec137da369 38 void recvHandler(void){
tosihisa 0:e0ec137da369 39 if(Serial::readable()){
tosihisa 0:e0ec137da369 40 tRingBuffer::write(static_cast<unsigned char>(Serial::getc()));
tosihisa 0:e0ec137da369 41 }
tosihisa 0:e0ec137da369 42 }
tosihisa 0:e0ec137da369 43
tosihisa 0:e0ec137da369 44 };
tosihisa 0:e0ec137da369 45
tosihisa 0:e0ec137da369 46 };
tosihisa 0:e0ec137da369 47
tosihisa 0:e0ec137da369 48 #endif /* __TSERIALBUFFER_H */
tosihisa 0:e0ec137da369 49