|
[ruby-list:42140] Re: RS232Cによるパソコン間の通信の不具合(質問): msg#00171lang.ruby.japanese
最後までお付き合いいただきまして、有り難うございます。 > c = port.sysread(1) で、PC1とPC2のどちらを受信側にしても、とりあえず動くん ですよね? 確認しましたが、 c = port.read(1)でも c = port.sysread(1)でも同じ結果で、 PC1とPC2のどちらを受信側にしても動きました。 すなわち、PC1から、50文字ずつ送る場合、10回Runさせた場合に、初めてP C2が500文字を受信したように表示されます。 > | すなわち、1文字ずつ逐一printがされるのではなく、まとめてprint処理 され > | ることがわかりました。ここは、理解しにくいところです。 > | したがって、この簡単な方法では、具合が悪いことがわかりました。 > > これが嫌なら、適宜flushを入れればいいのではないかと。 適宜flushを入れるとは、具体的にどのようスクリプトを書けばよいのでしょうか。 flushというのは、バッファーにあるメモリーを消し去ることのように想像します。 PCから電子コンパスに一連の命令を送信し、これに命令に応答して返送されるデー タを1文字ずつを読み込み、必要な数のデータを読み込んだところで、このデータ解 析をすればよいので一文字ずつ読み込めればよく、それが c = port.read(1)である と思うのです。 cの内容を判定して処理を行うので、きちんと解析は行われることも確認しました。 しかし、port.closeになるまで、printされないので、おそらく、測定時と対応がず れた解析になる可能性があります。果たしてどうなるのか不明です。 一文字ずつ、読み込めれば、解析できれるので、その方法さえわかれば、serial portのお世話にならずに済みそうです。 矢幡 久
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42139] Re: RS232Cによるパソコン間の通信の不具合(質問), U.Nakamura |
|---|---|
| Next by Date: | [ruby-list:42141] Re: RS232Cによるパソコン間の通信の不具合(質問), U.Nakamura |
| Previous by Thread: | [ruby-list:42139] Re: RS232Cによるパソコン間の通信の不具合(質問), U.Nakamura |
| Next by Thread: | [ruby-list:42141] Re: RS232Cによるパソコン間の通信の不具合(質問), U.Nakamura |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |