read until custom char
This commit is contained in:
parent
a3cb224206
commit
9f462969c1
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "SerialReader",
|
"name": "SerialReader",
|
||||||
"version": "1.0.1",
|
"version": "1.1.0",
|
||||||
"description": "Helper class for reading Serial input, without blocking",
|
"description": "Helper class for reading Serial input, without blocking",
|
||||||
"repository":
|
"repository":
|
||||||
{
|
{
|
||||||
|
|||||||
@ -11,24 +11,20 @@ public:
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
int readLine(HardwareSerial &serial) {
|
int readLine(HardwareSerial& serial, const char eol = '\n') {
|
||||||
static size_t pos = 0;
|
static size_t pos = 0;
|
||||||
size_t rpos;
|
size_t rpos;
|
||||||
int readCh;
|
int readCh;
|
||||||
|
|
||||||
for (int i = 0, avail = serial.available(); i < avail && (readCh = serial.read()) > 0; i++) {
|
for (int i = 0, avail = serial.available(); i < avail && (readCh = serial.read()) > 0; i++) {
|
||||||
switch (readCh) {
|
if (readCh == eol) {
|
||||||
case '\r': // Ignore CR
|
|
||||||
break;
|
|
||||||
case '\n': // Return on new-line
|
|
||||||
rpos = pos;
|
rpos = pos;
|
||||||
pos = 0; // Reset position index ready for next time
|
pos = 0; // Reset position index ready for next time
|
||||||
return rpos;
|
return rpos;
|
||||||
default:
|
}
|
||||||
if (pos < bufferLength - 1) {
|
if ((readCh != '\r') && (readCh != '\n') && (pos < bufferLength - 1)) {
|
||||||
buffer[pos++] = readCh;
|
buffer[pos++] = readCh;
|
||||||
buffer[pos] = 0;
|
buffer[pos] = 0;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user