Serial.parseInt()

Описание

Ищет следующее допустимое целое число во входящем потоке последовательного порта. Функция завершает работу при превышении тайм-аута (см. Serial.setTimeout()).

Serial.parseInt() наследуется от служебного класса Stream.

В частности:

  • Парсинг останавливается, если в течение настраиваемого тайм-аута не было прочитано ни одного символа или встречен символ, не являющийся цифрой.

  • Если до истечения тайм-аута (см. Serial.setTimeout()) не было прочитано ни одной допустимой цифры, возвращается 0.

Синтаксис

Используйте один из следующих вариантов функции для поиска целого числа в буфере последовательного порта:

  • Serial.parseInt()

  • Serial.parseInt(lookahead)

  • Serial.parseInt(lookahead, ignore)

Параметры

Функция принимает следующие объекты и параметры:

  • Serial: объект последовательного порта. Список доступных последовательных портов для каждой платы см. на главной странице Serial.

  • lookahead: режим, используемый для просмотра потока в поиске целого числа. Допустимые типы данных: LookaheadMode. Допустимые значения lookahead:

    • SKIP_ALL: при сканировании потока в поисках целого числа игнорируются все символы, кроме цифр и знака минус. Это режим по умолчанию.

    • SKIP_NONE: ничего не пропускается, поток не трогается, пока первый ожидающий символ не окажется допустимым.

    • SKIP_WHITESPACE: пропускаются только табуляции, пробелы, переводы строк и возвраты каретки.

  • ignore: используется для пропуска указанного символа при поиске. Применяется, например, для пропуска разделителя тысяч. Допустимый тип данных: char.

Возвращаемое значение

Функция возвращает первое найденное целое число. Тип данных: long.

Пример кода

Следующий код извлекает первое допустимое целое число, полученное по последовательному порту:

void setup() {
  Serial.begin(9600);
  while (!Serial)
    ;

  Serial.println("Enter a integer number:");  // попробуйте смешанной фразой, например "The size of the box is 5 mm"
}

void loop() {
  if (Serial.available()) {
    int number = Serial.parseInt();
    if (number != 0) {
      Serial.print("You entered: ");
      Serial.println(number);
    }
  }
}