tomovwgti/Node-SerialPort — pull request #1 by kei-os (2013-03-30 07:51:15+00:00)
Title: prevent serial input data loss by using readline() defined in serialport...

NodeServer を動かしてみました。
私の環境でも Arduino からのデータを取りこぼしていましたが、原因がわかりましたので、対策コードを書いてみました。
ご確認をおねがいします。

(原因)
Arduino のデータ書き出しタイミングと serialport モジュールの 'data' イベントが同期していないのが原因で、JSON.parse() に渡すデータが不完全になることがあり、データを取りこぼしていました。

(対策)
Arduno のデータ書き出しメソッドを Serial.println() に変更し、また serialport モジュールで用意されていた readline() をパーサに指定することで、JSON オブジェクト単位で 'data' イベントが発生するように変更し、対策してみました。

(動作確認)
動作確認は、MacBookPro (MacOSX 10.8.3) + Node v0.10.0 + Arduino Duemilanove の環境でおこないました。
手元に温度センサ (LM35Z) が無かったため、ダミーデータを作って確認しましたが、9600, 115200 baudrate どちらも、問題なくデータの取得ができていました。

Node.js 最近さわり始めたのですが、面白いですね :-)

というわけで、ご確認をお願いします。