diff options
author | David A. Mellis <d.mellis@arduino.cc> | 2010-07-04 23:31:55 +0000 |
---|---|---|
committer | David A. Mellis <d.mellis@arduino.cc> | 2010-07-04 23:31:55 +0000 |
commit | d3cb43c1c981ee3726d26c05ec3e42fffaa080c6 (patch) | |
tree | 61c23e7f21927311c04853da13a0f25a550d8c8c /cores/arduino | |
parent | 2c32369685d38f7367328d470571dd2f9a1104c7 (diff) |
Adding a peek() function to Stream and HardwareSerial (Serial).
Diffstat (limited to 'cores/arduino')
-rwxr-xr-x | cores/arduino/HardwareSerial.cpp | 9 | ||||
-rwxr-xr-x | cores/arduino/HardwareSerial.h | 1 | ||||
-rw-r--r-- | cores/arduino/Stream.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/cores/arduino/HardwareSerial.cpp b/cores/arduino/HardwareSerial.cpp index 638b6d1..f8cdebe 100755 --- a/cores/arduino/HardwareSerial.cpp +++ b/cores/arduino/HardwareSerial.cpp @@ -178,6 +178,15 @@ uint8_t HardwareSerial::available(void) return (RX_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % RX_BUFFER_SIZE; } +int HardwareSerial::peek(void) +{ + if (_rx_buffer->head == _rx_buffer->tail) { + return -1; + } else { + return _rx_buffer->buffer[_rx_buffer->tail]; + } +} + int HardwareSerial::read(void) { // if the head isn't ahead of the tail, we don't have any characters diff --git a/cores/arduino/HardwareSerial.h b/cores/arduino/HardwareSerial.h index cae1447..884f9fe 100755 --- a/cores/arduino/HardwareSerial.h +++ b/cores/arduino/HardwareSerial.h @@ -49,6 +49,7 @@ class HardwareSerial : public Stream void begin(long); void end(); virtual uint8_t available(void); + virtual int peek(void); virtual int read(void); virtual void flush(void); virtual void write(uint8_t); diff --git a/cores/arduino/Stream.h b/cores/arduino/Stream.h index 3bf5283..1d3e50b 100644 --- a/cores/arduino/Stream.h +++ b/cores/arduino/Stream.h @@ -27,6 +27,7 @@ class Stream : public Print { public: virtual uint8_t available() = 0; + virtual int peek() = 0; virtual int read() = 0; virtual void flush() = 0; }; |