Processing:Библиотеки/Serial/Обработчик событий последовательного порта/serialEvent()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску


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



serialEvent()[1]

Обозначение

serialEvent()

Описание

Вызывается, если у порта есть данные для считывания. Для считывания этих данных используйте функции вроде read(). При использовании buffer() функция serialEvent() будет вызвана, если в буфер будет считано заданное количество байтов. При использовании bufferUntil() функция serialEvent() будет вызвана, если в буфер будет считан заданный символ. Параметр whichPort отвечает за название порта, где можно прочесть новые данные, но он нужен только, если у вас открыто более одного последовательного соединения и вам нужно отличить одно от другого.

Синтаксис

void serialEvent(Serial whichPort) {
  statements
}

Параметры

whichPort   порт, на котором есть данные для считывания. Тип данных  Serial
statements  какой-либо код, который нужно запустить

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

void

Пример

// Скетч-пример от Тома Иго. 
 
import processing.serial.*; 
 
Serial myPort;    // последовательный порт
PFont myFont;     // шрифт, который будет нарисован на экране
String inString;  // строка, присланная через последовательный порт
int lf = 10;      // перевод строки в кодировке ASCII
 
void setup() { 
  size(400,200); 
  // вам нужно создать этот шрифт в PDE
  // при помощи инструмента Tools > Create Font... 
  myFont = loadFont("ArialMS-18.vlw"); 
  textFont(myFont, 18); 
  // печатаем список всех доступных последовательных портов: 
  printArray(Serial.list()); 
  // я знаю, что на моем Mac первый последовательный порт в списке – 
  // это всегда переходник Keyspan, поэтому открываю Serial.list()[0];
  // вы можете открыть любой порт по своему усмотрению: 
  myPort = new Serial(this, Serial.list()[0], 9600); 
  myPort.bufferUntil(lf); 
} 
 
void draw() { 
  background(0); 
  text("received: " + inString, 10,50); 
   //  "получено: "
} 
 
void serialEvent(Serial p) { 
  inString = p.readString(); 
}

См.также

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