Я создал простое приложение на vb.net, которое получает данные с устройства Bluetooth (простые строки, такие как «90123.9mm»).
Есть ли способ проверить, закрыло ли устройство соединение?
Я пытался поместить код в таймер
If SerialPort1 Is Nothing Then
MsgBox("no connect")
End If
If Not (SerialPort1.IsOpen) Then
MsgBox("no connect")
End If
, но безуспешно.
Вот код подключения и приема.
Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
SerialPort1.PortName = "COM22"
SerialPort1.BaudRate = "9600"
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.DataBits = 8
SerialPort1.Open()
If SerialPort1 Is Nothing Then
MsgBox("no connect")
End If
If Not (SerialPort1.IsOpen) Then
MsgBox("no connect")
End If
btnConnect.Enabled = False
btnDisconnect.Enabled = True
End Sub
Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
SerialPort1.Close()
btnConnect.Enabled = True
btnDisconnect.Enabled = False
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting()) 'aftomata kalite kathe fora pou dexomai nea dedomena
End Sub
Private Sub ReceivedText(ByVal [text] As String)
If Me.rtbReceived.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.rtbReceived.Text &= [text]
End If
End Sub