Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
serialBuffer.cpp
- Committer:
- UHSLMarcus
- Date:
- 2017-03-14
- Revision:
- 8:93d1469f3f6d
- Parent:
- 6:ca024bcee813
- Child:
- 9:8010dd8b4742
File content as of revision 8:93d1469f3f6d:
#include "serialBuffer.h" SerialBuffer::SerialBuffer(PinName tx, PinName rx) : RawSerial(tx, rx), rx_buffer(255, false) { RawSerial::attach(callback(this, &SerialBuffer::rx_interrupt), Serial::RxIrq); return; } SerialBuffer::~SerialBuffer() { RawSerial::attach(NULL, RawSerial::RxIrq); return; } int SerialBuffer::readable() { return rx_buffer.count() > 0; } char SerialBuffer::getc() { RawSerial::attach(NULL, RawSerial::RxIrq); char nextChar = rx_buffer.pop(); RawSerial::attach(callback(this, &SerialBuffer::rx_interrupt), Serial::RxIrq); return nextChar; } void SerialBuffer::rx_interrupt(void) { if(serial_readable(&_serial) && !rx_buffer.full()) { rx_buffer.push(serial_getc(&_serial)); } return; }