SerialLibraryes:serialEvent関数
Serialライブラリ※1のserialEvent関数は、データが使用可能なときに呼び出されます。
このデータを取得するには、read関数メソッドのいずれかを使用します。
serialEvent関数は、ある数のデータ要素が読み込まれた後にだけトリガするようにbuffer関数で設定でき、特定の文字が読み込まれた後にトリガするbufferUntil関数で設定できます。
whichパラメータには、新しいデータが利用できるポートの名前が含まれますが、複数のシリアル接続が開いていて、2つを区別する必要がある場合にのみ便利です。
以下補足です
※1:シリアルライブラリは、一度に1バイトずつ外部デバイスとの間でデータの読み書きを行います。このライブラリは、カスタムマイクロコントローラデバイスと通信し、それらを処理プログラムの入力または出力として使用する柔軟性を備えています。シリアルポートは、多くのPC上に存在し、USB経由でエミュレートできる9ピンI/Oポートです。print関数やprintln関数などの方法でコンソールにデータを送信するときは、コンソールが比較的遅いことに注意してください。高速のリアルタイム出力(60フレーム/秒など)はサポートしていません。
Processingで使用するSerialLibraryes:serialEvent関数の使い方は以下の通りです。
Serial.list関数で使用可能なシリアルポートを取得し、printArray関数でその一覧を図2の様に出力します。
new Serial関数で、現在使用している「「0」"COM1"」ポートを「9600bps」のボーレートで開きます。
serialEvent関数は、データが使用可能なときに呼び出されます。
import processing.serial.*;
Serial myPort; // シリアルポート
PFont myFont; // 表示フォント
String inString; // シリアルポートからの入力文字列
int lf = 10; // ASCII改行
void setup() {
size(400,200);
//あなたはこのフォントをCreate Font Toolで作成する必要があります
myFont = loadFont("ArialMS-18.vlw");
textFont(myFont,18);
// 利用可能なシリアルポートを一覧表示する
printArray(Serial.list());
// 私のMAC上のシリアルリストの最初のポート
// isalways my Keyspan adaptor, so I openSerial.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();
}
〇SerialLibraryes:serialEvent関数の構文
void serialEvent(Serial whichPort) {
statements
}
〇SerialLibraryes:serialEvent関数のパラメータ
whichPort Serial: 新しいデータが利用可能なポート
statements : 任意の有効な文
〇SerialLibraryes:serialEvent関数の戻り値
特に無し