у меня есть серийное ком 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'. Вы также можете поэкспериментировать с увеличением значения в 'Sleep'. –
@JimHewitt ReadLine() заставляет программу замораживать –
Вы пытались установить 'SerialPort1.NewLine = vbCR'? –