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);
}