Gast
#1077176
Hallo.
Ich habe ein ein problem mit folgenden Programmteil:
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As
System.IO.Ports.SerialDataReceivedEventArgs) Handles
SerialPort1.DataReceived
Control.CheckForIllegalCrossThreadCalls = False
Dim data, zwischen As String
data = SerialPort1.ReadExisting()
SerialPort1.DiscardInBuffer()
'Empfangene Daten auswerten:
If data.Contains("L1Value") Then
data = data.Remove(0, 7)
data = CInt(data)
zwischen = data 'nur zum debuggen
TrackBarL1.Value = data
Label1.Text = data * 10 & " %"
End If
End Sub
Ich werte einen String aus der über die serielle SChnittstelle empfangen
wird. Und zwar erstmal nur für ein Objekt, d.h. die If-Anweisung könnte
man auch erstmal weglassen.
Das Problem ist nun folgendes:
Der String der empfangen wird lautet "L1Value" direkt gefolgt von einer
Zahl 0 bis 10. Also z.B. L1Value9 oder L1Value10
Ich scheide dann L1Value vom String ab und weise die Zahl einem Label
und Trackbar zu. Das klappt eigentlich ganz gut nur funktioniert es
nicht richtig mit dem String "L1Value10"! data hat nach dem Scneiden den
Wert 1!
Es funktioniert nur einmal wenn der erste String der nach dem
programmstart gesendet wird "L1Value10" ist. Nur dann übernimmt das
Programm die 10.
???
Ich verstehe das nicht. Bin auch noch Anfänger mit Visual Basic (2005)