aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino
diff options
context:
space:
mode:
Diffstat (limited to 'cores/arduino')
-rwxr-xr-xcores/arduino/HardwareSerial.cpp9
-rwxr-xr-xcores/arduino/HardwareSerial.h1
-rw-r--r--cores/arduino/Stream.h1
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;
};