Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Fri Jan 13 10:15:08 2012 +0000
Revision:
1:83960ee4d9a2
Parent:
0:6089ae824f06
Child:
4:879b8dcfee15
add 5-sec wait before using CO2-sensor

Who changed what in which revision?

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