Adding a basic Stream interface and modifying HardwareSerial to inherit from it.

This commit is contained in:
David A. Mellis 2010-05-28 22:41:03 +00:00
parent 38f50a62b5
commit 0557d46fc2
2 changed files with 39 additions and 5 deletions

View File

@ -22,11 +22,11 @@
#include <inttypes.h>
#include "Print.h"
#include "Stream.h"
struct ring_buffer;
class HardwareSerial : public Print
class HardwareSerial : public Stream
{
private:
ring_buffer *_rx_buffer;
@ -48,9 +48,9 @@ class HardwareSerial : public Print
uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udre, uint8_t u2x);
void begin(long);
void end();
uint8_t available(void);
int read(void);
void flush(void);
virtual uint8_t available(void);
virtual int read(void);
virtual void flush(void);
virtual void write(uint8_t);
using Print::write; // pull in write(str) and write(buf, size) from Print
};

View File

@ -0,0 +1,34 @@
/*
Stream.h - base class for character-based streams.
Copyright (c) 2010 David A. Mellis. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef Stream_h
#define Stream_h
#include <inttypes.h>
#include "Print.h"
class Stream : public Print
{
public:
virtual uint8_t available() = 0;
virtual int read() = 0;
virtual void flush() = 0;
};
#endif