動作環境
Processing 3.1.1 on Windows 8.1 pro(64bit)
Library: ControlP5 v2.2.6
Library: Serial
http://qiita.com/7of9/items/9553a7c5d1bd8a295faa
の続き。
code v0.4
以下を実装した。
- v0.3
- String split()を使用して、受信文字列のparsing
- v0.4
- シリーズの処理をfor文でまとめるための変更 (途中)
動作そのものはv0.2と変化なし。
String splitを使うことでずいぶんすっきりできた。
void serialEvent(Serial myPort) {
String mystr = myPort.readStringUntil('\n');
mystr = trim(mystr);
println(mystr);
String wrk;
for(int si = 0; si < maxnumSeries; si++) { // si: series index
wrk = mystr.split("\\s+")[si];
if (wrk.length() > 0) {
datamatrix[si][numSeriesData[si]] = float(wrk);
numSeriesData[si]++;
}
}
}
マトリックスのインデックス指定に[si][numSeriesData[si]]
には違和感がある。
numSeriesData[si]
を一時変数に置くかどうか。
code改良版
shiracamusさんの改良コメント
を参照ください。