HardwareSerial::write(const char*, ...) API compatibility to AVR, ESP8266, et al (#3585)
* API compatibility to AVR, ESP8266, et al * Add non-blocking HardwareSerial::read(buffer, size) extension (ESP8266 portability) * Refactor for fewer indirect calls.
This commit is contained in:
parent
6e77f7f3e5
commit
0607d36734
@ -131,6 +131,24 @@ int HardwareSerial::read(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// read characters into buffer
|
||||||
|
// terminates if size characters have been read, or no further are pending
|
||||||
|
// returns the number of characters placed in the buffer
|
||||||
|
// the buffer is NOT null terminated.
|
||||||
|
size_t HardwareSerial::read(uint8_t *buffer, size_t size)
|
||||||
|
{
|
||||||
|
size_t avail = available();
|
||||||
|
if (size < avail) {
|
||||||
|
avail = size;
|
||||||
|
}
|
||||||
|
size_t count = 0;
|
||||||
|
while(count < avail) {
|
||||||
|
*buffer++ = uartRead(_uart);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
void HardwareSerial::flush(void)
|
void HardwareSerial::flush(void)
|
||||||
{
|
{
|
||||||
uartFlush(_uart);
|
uartFlush(_uart);
|
||||||
|
@ -62,11 +62,19 @@ public:
|
|||||||
int availableForWrite(void);
|
int availableForWrite(void);
|
||||||
int peek(void);
|
int peek(void);
|
||||||
int read(void);
|
int read(void);
|
||||||
|
size_t read(uint8_t *buffer, size_t size);
|
||||||
|
inline size_t read(char * buffer, size_t size)
|
||||||
|
{
|
||||||
|
return read((uint8_t*) buffer, size);
|
||||||
|
}
|
||||||
void flush(void);
|
void flush(void);
|
||||||
void flush( bool txOnly);
|
void flush( bool txOnly);
|
||||||
size_t write(uint8_t);
|
size_t write(uint8_t);
|
||||||
size_t write(const uint8_t *buffer, size_t size);
|
size_t write(const uint8_t *buffer, size_t size);
|
||||||
|
inline size_t write(const char * buffer, size_t size)
|
||||||
|
{
|
||||||
|
return write((uint8_t*) buffer, size);
|
||||||
|
}
|
||||||
inline size_t write(const char * s)
|
inline size_t write(const char * s)
|
||||||
{
|
{
|
||||||
return write((uint8_t*) s, strlen(s));
|
return write((uint8_t*) s, strlen(s));
|
||||||
|
Loading…
Reference in New Issue
Block a user