Adding a peek() function to Stream and HardwareSerial (Serial).
This commit is contained in:
parent
2c32369685
commit
d3cb43c1c9
|
@ -178,6 +178,15 @@ uint8_t HardwareSerial::available(void)
|
||||||
return (RX_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % RX_BUFFER_SIZE;
|
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)
|
int HardwareSerial::read(void)
|
||||||
{
|
{
|
||||||
// if the head isn't ahead of the tail, we don't have any characters
|
// if the head isn't ahead of the tail, we don't have any characters
|
||||||
|
|
|
@ -49,6 +49,7 @@ class HardwareSerial : public Stream
|
||||||
void begin(long);
|
void begin(long);
|
||||||
void end();
|
void end();
|
||||||
virtual uint8_t available(void);
|
virtual uint8_t available(void);
|
||||||
|
virtual int peek(void);
|
||||||
virtual int read(void);
|
virtual int read(void);
|
||||||
virtual void flush(void);
|
virtual void flush(void);
|
||||||
virtual void write(uint8_t);
|
virtual void write(uint8_t);
|
||||||
|
|
|
@ -27,6 +27,7 @@ class Stream : public Print
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual uint8_t available() = 0;
|
virtual uint8_t available() = 0;
|
||||||
|
virtual int peek() = 0;
|
||||||
virtual int read() = 0;
|
virtual int read() = 0;
|
||||||
virtual void flush() = 0;
|
virtual void flush() = 0;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue