今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

RS-232Cによる通信

あるデバイスとパソコンをRS-232Cで接続し、Windowsアプリケーションとデバイスが通信していた。そのパソコン上で Java アプリケーションを動作させると、デバイスとの通信ができなくなった。デバイスとの通信を行うWindowsアプリケーションを開発した人は、Java アプリケーションに問題があるから通信できないという。(^^;
RS-232C上を流れるデータをモニタリングして確認したところ、データはきちんとデバイスに送信され、デバイスからその応答が返されている。
時間もないので、そのデバイスJava アプリケーションが稼動していない時間だけ使うということにした。(展示会に出品するだけなのでそれで十分)
帰りの新幹線の中で気付いて今日になって確認したところ、そのデバイスとの通信ではハードウェアフロー制御もソフトウェアフロー制御も行っていないということが分かった。つまり Java アプリケーションが動作することによって発生するストリームのトラフィック増が影響してバッファオーバーランが発生し、データを取りこぼしていたのだった。
フロー制御してないんだったらそんなの当然じゃん。悩んで損した気分。RS-232Cなんて久しぶりなんで、フロー制御しないと取りこぼすことを忘れていたので、原因に気がつくのに時間がかかってしまった。