WindowsXP、VB2005.NET で動作させております。
「SerialPort」をFormに配置して、通信の送受信をさせていますが、
通信ケーブルが接続されていないことを、認識させるにはどうすれば
良いのでしょうか?
送受信は以下のコードで行っております。
通信相手はPCからのコマンドを受けてPCへ送信します。
Private Sub PortOpen()
Try
Call SerialPort1.Open()
Catch ex As Exception
MessageBox.Show(ex.message.........)
End Try
End Sub
Private Sub DataSend(Byval str As String)
Try
SerialPort1.Write(str)
Catch ex As Exception
MessageBox.Show(ex.Message,.........)
End Try
End Sub
Private Function DataReceived()As String
Dim str As String
Try
str = SerialPort1.ReadTo(ChrW(03))
Catch ex As Exception
MessageBox.Show(.........)
End Try
Return str
End Function
----MAIN----
Dim SendData As string
Dim ReceiveData As string
PortOpen()
DataSend(SendData)
ReceivedData = DataReceived()
.
.
.
この状態で、ケーブルを接続せずに実行すると
DataReceived()プロシージャ内で止まってしまうようなのです。
(実行はとまっておりません。)
よろしくお願いします。
解決しました。
>Private Function DataReceived()As String
> Dim str As String
> Try
SerialPort1.ReadTimeout = 5000 「タイムアウト5秒」追加
> str = SerialPort1.ReadTo(ChrW(03))
> Catch ex As Exception
> MessageBox.Show(.........)
> End Try
> Return str
>End Function
でした。良かったのでしょうか?
ツイート | ![]() |