This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, please let us know. If you prefer a more technical reference, visit the Processing Core Javadoc and Libraries Javadoc.
Class | Serial |
Name |
readBytesUntil() |
Examples |
// Example by Tom Igoe
import processing.serial.*;
Serial myPort; // The serial port
void setup() {
// List all the available serial ports:
printArray(Serial.list());
// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.write(65);
}
void draw() {
while (myPort.available() > 0) {
int lf = 10;
// Expand array size to the number of bytes you expect:
byte[] inBuffer = new byte[7];
myPort.readBytesUntil(lf, inBuffer);
if (inBuffer != null) {
String myString = new String(inBuffer);
println(myString);
}
}
}
|
Description |
Reads from the port into a buffer of bytes up to and including a particular character. If the character isn't in the buffer, null is returned. The version with without the byteBuffer parameter returns a byte array of all data up to and including the interesting byte. This is not efficient, but is easy to use. The version with the byteBuffer parameter is more memory and time efficient. It grabs the data in the buffer and puts it into the byte array passed in and returns an int value for the number of bytes read. If the byte buffer is not large enough, -1 is returned and an error is printed to the message area. If nothing is in the buffer, 0 is returned.
|
Syntax | serial.readBytesUntil(inByte)
serial.readBytesUntil(inByte, dest) |
Parameters |
serial |
Serial: any variable of type Serial |
inByte |
int: character designated to mark the end of the data |
dest |
byte[]: passed in byte array to be altered |
|
Returns | byte[] or int |
Updated on January 21, 2019 10:05:14am EST