我有一個串行COM GUI,我必須對串行端口的現有數據就是基於一箱顯示的文本顯示文本,但不究竟什麼串口數據是。例如,如果串行端口的現有行是「!+0007」,我希望我的文本框讀取「類型K」。我已經嘗試了多種方法,如If-Then和Select Case,我沒有任何運氣。如何在一個盒子基於串口的現有數據
Private Sub GetInput_Click(sender As Object, e As EventArgs) Handles GetInput.Click
SerialPort1.Write("$" & ComboBox4.Text & ComboBox5.Text & "06" & vbCr)
System.Threading.Thread.Sleep(50)
If SerialPort1.ReadExisting = "!+0007." Then
GetInputBox.Text = "Type K"
End If
SerialPort1.DiscardOutBuffer()
End Sub
沒有運氣與
Private Sub GetInput_Click(sender As Object, e As EventArgs) Handles GetInput.Click
Dim value As String = SerialPort1.ReadExisting
SerialPort1.Write("$" & ComboBox4.Text & ComboBox5.Text & "06" & vbCr)
System.Threading.Thread.Sleep(50)
Select Case value
Case value = "!+0007."
GetInputBox.Text = "Type K"
End Select
SerialPort1.DiscardOutBuffer()
End Sub
無任何這裏。 有什麼建議嗎?
在第一個示例中,嘗試使用「SerialPort1.ReadLine()」而不是「SerialPort1.ReadExisting」。您還可以嘗試增加「睡眠」中的值。 –
@JimHewitt ReadLine()導致程序凍結 –
您是否嘗試設置'SerialPort1.NewLine = vbCR'? –