Adding a peek() function to Stream and HardwareSerial (Serial).

This commit is contained in:
David A. Mellis 2010-07-04 23:31:55 +00:00
parent 2c32369685
commit d3cb43c1c9
3 changed files with 11 additions and 0 deletions

View File

@ -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

View File

@ -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);

View File

@ -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;
};