diff options
author | David A. Mellis <d.mellis@arduino.cc> | 2010-05-28 22:41:03 +0000 |
---|---|---|
committer | David A. Mellis <d.mellis@arduino.cc> | 2010-05-28 22:41:03 +0000 |
commit | 90eb0aecd858e62aa4ea125949387d89a6156273 (patch) | |
tree | 25b1027346cc01c98d2790075b1055236a70ffba /cores | |
parent | 67c0a1995aace2953e481ef6183b1b91e04942fc (diff) |
Adding a basic Stream interface and modifying HardwareSerial to inherit from it.
Diffstat (limited to 'cores')
-rwxr-xr-x | cores/arduino/HardwareSerial.h | 10 | ||||
-rw-r--r-- | cores/arduino/Stream.h | 34 |
2 files changed, 39 insertions, 5 deletions
diff --git a/cores/arduino/HardwareSerial.h b/cores/arduino/HardwareSerial.h index 6b620ed..cae1447 100755 --- a/cores/arduino/HardwareSerial.h +++ b/cores/arduino/HardwareSerial.h @@ -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 }; diff --git a/cores/arduino/Stream.h b/cores/arduino/Stream.h new file mode 100644 index 0000000..3bf5283 --- /dev/null +++ b/cores/arduino/Stream.h @@ -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 |