DOBON.NET DOBON.NETプログラミング掲示板過去ログ

シリアル通信での受信について

環境/言語:[Visual BASIC 2008 Express edition]
分類:[.NET]

はじめまして。最近Visual BASIC 2008 Express Editionを使い始めました。
VB初心者です。
さて、質問はシリアル通信に関してです。
PC2台をクロスケーブルで繋ぎ、一方のPCにハイパーターミナルを立ち上げておいてプログラムをテストしています。
テストの結果、送信の方はうまくいくのですが、受信が反応しません。

最初、SerialPortのDataReceivedイベントハンドラーを

Private Sub received(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Console.WriteLine("データ受信")
Console.Write(SerialPort1.ReadChar().ToString())
End Sub

のように書いてみましたが、相手側のハイパーターミナルからキーをタイプしてもまったく反応しません。


次にタイマーを使い、1秒間隔でSerialPortの状態をスキャンするようにしてみました。
Private Sub ticked(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'Console.Write("タイマーイベント")

If SerialPort1.IsOpen() Then
Console.Write(Convert.ToString(SerialPort1.BytesToRead()))
Console.Write(SerialPort1.ReadExisting().ToString)
End If

End Sub

この場合相手側からキーをタイプしてもずっと0が出力されます。
ちなみにSerialPortのプロパティはデフォルトのままで行っています。
何か情報をお持ちの方がおられましたら、ご教授のほどよろしくお願いいたします。
自己解決しました。
HandshakeプロパティにRequestToSendを設定したら受信できました...
どうもお邪魔しました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板