Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Mon Dec 26 15:58:32 2011 +0000
Revision:
0:6089ae824f06
Child:
1:83960ee4d9a2
1st Release

Who changed what in which revision?

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