Processing:Библиотеки/Serial/Класс Serial/readBytesUntil(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=readBytesUntil()<ref>[https://processing.org/reference/libraries/serial/Serial_readBytesUntil_.html processing.org - readBytesUntil()]</ref>=
=readBytesUntil()<ref>[https://processing.org/reference/libraries/serial/Serial_readBytesUntil_.html processing.org - readBytesUntil()]</ref>=
Строка 97: Строка 97:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 11:53, 20 мая 2023


Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



readBytesUntil()[1]

Класс

Serial

Обозначение

readBytesUntil()

Описание

Считывает байты из порта в буфер до заданного символа (включая сам символ). Если заданного символа нет, возвращает null. Версия без параметра dest возвращает массив байтов со всеми байтами, находящимися до байта inByte (включая его самого). Это не очень эффективно, но зато просто. Версия с параметром dest работает быстрее и менее требовательна к памяти. Она считывает данные, помещает их в заданный массив байтов (dest) и возвращает значение int, обозначающее количество считанных байтов. Если буфер недостаточно велик, функция вернет «-1», а в текстовой области будет напечатано сообщение об ошибке. Если в буфере ничего нет, функция вернет «0».

Синтаксис

serial.readBytesUntil(inByte)
serial.readBytesUntil(inByte, dest)

Параметры

serial  любая переменная типа Serial. Тип данных  Serial
inByte  символ, обозначающий конец считываемых данных. Тип данных  int
dest    массив, в который нужно сохранить данные. Тип данных  byte[]

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

Тип данных  byte[] или int.

Пример

// Скетч-пример от Тома Иго.

import processing.serial.*;

Serial myPort;  // последовательный порт

void setup() {
  // печатаем список всех доступных последовательных портов:
  printArray(Serial.list());
  // открываем используемый порт на нужной скорости:
  myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.write(65);
}

void draw() {
  while (myPort.available() > 0) {
    int lf = 10;
    // увеличиваем размер массива до нужного количества байтов:
    byte[] inBuffer = new byte[7];
    myPort.readBytesUntil(lf, inBuffer);
    if (inBuffer != null) {
      String myString = new String(inBuffer);
      println(myString);
    }
  }
}

См.также

Внешние ссылки