Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Mon Feb 27 16:20:15 2012 +0000
Revision:
9:9ca3db7ed7cb
Parent:
4:879b8dcfee15
V0.89.2. GPS recv data is OK.

Who changed what in which revision?

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