logo       

[ruby-list:42139] Re: RS232Cによるパソコン間の通信の不具合(質問): msg#00170

lang.ruby.japanese

Subject: [ruby-list:42139] Re: RS232Cによるパソコン間の通信の不具合(質問)

こんにちは、なかむら(う)です。

In message "[ruby-list:42138] Re: RS232Cによるパソコン間の通信の不具合(質問)"
on Apr.26,2006 17:55:43,
<yahatah-vBG97VH5NlJ18gpoEprZGc8NsWr+9BEh@xxxxxxxxxxxxxxxx> wrote:
| <というわけで、プラットフォームが不明なのでmswin32版であると決
| <め打ちして回答してしまうと、受信側スクリプトの
| < c = port.read(1)
| <という部分を
| < c = port.sysread(1)
| <とすれば正常に動作すると思われます。
|
| 最初に述べたように、PC2からPC1へと送信したのですが、動きません。再現で
| きなかったのです。
| そこで、c = port.sysread(1)に変更すると、以前と同じように動きました。しか

c = port.sysread(1) で、PC1とPC2のどちらを受信側にしても、と
りあえず動くんですよね?


| し、結果は、問題点1で述べたように、「PC2を再実行し、再度送信すると、最初
| の実行による50個のデータを受信後、8個の途中まで受信する。 反応が中途半端
| である。」となります。例示したスクリプト通りに、送信文字を変更した場合、
| PC1で受信した結果は、途中を省力しますが、以下のとおりでした。
| 1==> xyz
| 2==> xyz
| 3==> xyz
| ・・・・・
| 45==> xyz
| 46==> xyz
| 47
| 結局は、PC1が、PC2から送信された500文字(正確には499文字)を全て受け取っ
| てから、PC1は、画面上に表示を開始しました。

これは、書いた通りに動いているわけで、問題だと思っていません
でした。


| すなわち、1文字ずつ逐一printがされるのではなく、まとめてprint処理され
| ることがわかりました。ここは、理解しにくいところです。
| したがって、この簡単な方法では、具合が悪いことがわかりました。

これが嫌なら、適宜flushを入れればいいのではないかと。


それでは。
--
U.Nakamura <usa-bhNLnadBHJLJHuKqwHuiUngSJqDPrsil@xxxxxxxxxxxxxxxx>






<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise