プロが教える店舗&オフィスのセキュリティ対策術

VisualBasicを使ってシリアル通信(受信のみ)を考えている初心者です。

現在、フォームのデザイナーからSerialportをドラッグしプロパティを設定しました。
コードでは、ポートを開き、受信の命令をしていますが
".readline"の文のところでフリーズしてしまいます。
----------
SerialPort1.Open()
Dim receivedata As String = ""
receivedata = SerialPort1.Readline
----------
原因がつかめず困っています。
何がいけないのでしょうか?詳しい方、是非ご教授お願いします。

A 回答 (2件)

下記URLに詳しい使い方がのってます。



http://msdn.microsoft.com/ja-jp/library/system.i …

ドキュメントには下記の内容が記述されていますがReadTimeoutプロパティは設定されていますか?
※ReadTimeoutプロパティを設定していない場合は、入力を受け取るまで待っている状態になるという事です。

-------------------------------------------------
既定では、ReadLine メソッドは行を受け取るまでブロックします。 この動作が不適切な場合は、ReadTimeout プロパティに 0 以外の値を設定して、ポート上に行が存在しない場合は ReadLine メソッドで強制的に TimeoutException がスローされるようにします。
-------------------------------------------------

データを受け取っている筈でしたら、他のプロパティ(ポーレートやスタートビット等)が異なっている為、正常に受信出来ていないだけだと思われます。

この回答への補足

プロパティ等は正しいようです。
元々、シリアルからのデータ形式が数字や文字列では無いため
ハイパーターミナルやTeraterm上では、めちゃめちゃではありますが、受信はできます。
めちゃめちゃな字では、受信できないのでしょうか?
(受信しているデータの通信速度やスタートビット,電圧等はRS232C仕様です。)

補足日時:2011/02/25 08:43
    • good
    • 0

テキストデータとバイナリデータの区別がよくわかっていないようです。


RealLineメソッドはテキストデータを対象にしたメソッドなので、バイナリデータに対して使用した場合の動作は保障外です。
ReadメソッドまたはReadByteメソッドを使用してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!