diff options
Diffstat (limited to 'cores')
-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; }; |