Search processing.org:

Reference for Processing (BETA) version 0135+. If you have a previous version, use the reference included with your software. If you see any errors or have any comments, let us know.

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:
      println(Serial.list());
      // I know that the first port in the serial list on my mac
      // is always my  Keyspan adaptor, so I open Serial.list()[0].
      // Open whatever port is the one you're using.
      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(interesting)
    serial.readBytesUntil(interesting, byteBuffer)

Parameters

serial | any variable of type Serial
interesting | byte: character designated to mark the end of the data
byteBuffer | byte[]: passed in byte array to be altered

Usage | Web & Application

Updated on February 09, 2008 04:38:52pm PST