Serial.findUntil()
Описание
Serial.findUntil() читает данные из буфера последовательного порта до тех пор, пока не будет найдена целевая строка заданной длины или строка-завершитель.
Serial.findUntil() наследуется от служебного класса Stream.
Синтаксис
Используйте следующую функцию для поиска заданной target-строки до момента нахождения terminator-строки.
Serial.findUntil(target, terminal)
Параметры
Функция принимает следующие объекты и параметры:
Serial: объект последовательного порта. Список доступных последовательных портов для каждой платы см. на главной странице Serial.target: строка, которую нужно найти. Допустимые типы данных:char.terminal: строка-завершитель в поиске. Допустимые типы данных:char.
Возвращаемое значение
Функция возвращает true, если целевая строка найдена раньше terminator, в противном случае — false. Тип данных: bool.
Пример кода
Следующий код ожидает появления целевой строки OK до строки-завершителя CANCEL:
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("Type a message. Looking for 'OK', but will stop if 'CANCEL' appears.");
}
void loop() {
if (Serial.available()) {
// пытаемся найти "OK", но останавливаемся раньше, если первым появилось "CANCEL"
if (Serial.findUntil("OK", "CANCEL")) {
Serial.println("Found OK before CANCEL!");
} else {
Serial.println("Did not find OK (CANCEL appeared first or timed out).");
}
}
delay(1000);
}