回答編集履歴
1
関数仕様の勘違いがあったので修正
test
CHANGED
@@ -172,6 +172,8 @@
|
|
172
172
|
|
173
173
|
[余談]
|
174
174
|
|
175
|
-
イベントハンドラserialEvent()の中でSerial.readStringUntil()メソッドを使っています。このメソッドは指定文字が来るまでひたすら待ちに入る可能性もあり、プログラムの進行を阻害することがあります。
|
175
|
+
イベントハンドラserialEvent()の中でSerial.readStringUntil()メソッドを使っています。~~このメソッドは指定文字が来るまでひたすら待ちに入る可能性もあり、プログラムの進行を阻害することがあります。~~ (勘違いにつき以下削除、書き換え。readStringUntil()はブロックしない)
|
176
176
|
|
177
|
-
|
177
|
+
|
178
|
+
|
179
|
+
Serial.readStringUntil()は、[公式のリファレンス](https://processing.org/reference/libraries/serial/Serial_readStringUntil_.html)によれば"Returns null if it doesn't find what you're looking for. "とのことなので、例えば"10,12\r\n"の'1'~'\r'を受信するとそれぞれserialEvent()が起動してreceiveMessageがNULLになる、ということでそのタイミングが先の`if (receiveMessage != null && receiveMessage != "")`と絡み合うとぬるぽで止まる、ということになるようですね。
|