Toshihisa T
/
S1315FLogger
Skytraq S1315F-RAW-EVK Logger
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Fri Jul 15 2022 18:09:03 by 1.7.2