37 lines
561 B
C++
37 lines
561 B
C++
#include <Arduino.h>
|
|
|
|
std::string read_terminal_line(const std::string & prompt)
|
|
{
|
|
Serial.print(prompt.c_str());
|
|
Serial.print(F(">"));
|
|
|
|
std::string str;
|
|
|
|
for(;;) {
|
|
if (Serial.available()) {
|
|
char c = Serial.read();
|
|
|
|
if (c == 13 || c == 10)
|
|
break;
|
|
|
|
if (c == 8) {
|
|
if (!str.empty()) {
|
|
str = str.substr(0, str.size() - 1);
|
|
|
|
Serial.print(char(8));
|
|
Serial.print(' ');
|
|
Serial.print(char(8));
|
|
}
|
|
}
|
|
else if (c >= 32 && c < 127) {
|
|
str += c;
|
|
|
|
Serial.print(c);
|
|
}
|
|
}
|
|
}
|
|
|
|
Serial.println(F(""));
|
|
|
|
return str;
|
|
}
|