シリアルポートの無接続エラーを調べるには?

解決


おふくろしんでん  2006-10-27 02:03:34  No: 97054

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()プロシージャ内で止まってしまうようなのです。
(実行はとまっておりません。)
よろしくお願いします。


おふくろしんでん  2006-10-27 05:37:34  No: 97055

解決しました。

>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

でした。良かったのでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加