Liebe Community
Mein Programm ist fast fertig.
Leider fehlt mir noch etwas.
Wenn ich eine zu Lange Nachricht über die Com-Ports erhalte, splittet es diesen einfach. Wie
ich das Problem lösen kann, weiss ich. Leider nur nicht wie ich das umsetze.
Ich muss den String nach dem vbCrLf durchsuchen und falls es einen Treffer hat, sollte es eine Methode ausführen. Es sollte den Text vor den vbCrLf mitgeben.
Mein jetztiger Code zum Empfangen der Nachrichten:
Spoiler anzeigen
Mein Programm ist fast fertig.
Leider fehlt mir noch etwas.
Wenn ich eine zu Lange Nachricht über die Com-Ports erhalte, splittet es diesen einfach. Wie
ich das Problem lösen kann, weiss ich. Leider nur nicht wie ich das umsetze.
Ich muss den String nach dem vbCrLf durchsuchen und falls es einen Treffer hat, sollte es eine Methode ausführen. Es sollte den Text vor den vbCrLf mitgeben.
Mein jetztiger Code zum Empfangen der Nachrichten:
Quellcode
- Private Sub SerialPort_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort.DataReceived
- Try
- Me.Invoke(Sub() WriteReceivedData(SerialPort.ReadExisting()))
- Catch ex As Exception
- End Try
- End Sub
- Private Sub WriteReceivedData(ByVal input As String)
- Dim text As String = txtAusgabe.Text
- Try
- Dim tag As String
- If Convert.ToInt32(Date.Now.Day) < 10 Then
- tag = "0" & Convert.ToString(Date.Now.Day)
- Else
- tag = Convert.ToString(Date.Now.Day)
- End If
- Dim monat As String
- If Convert.ToInt32(Date.Now.Month) < 10 Then
- monat = "0" & Convert.ToString(Date.Now.Month)
- Else
- monat = Convert.ToString(Date.Now.Month)
- End If
- Dim stunden As String
- If Convert.ToInt32(Date.Now.Hour) < 10 Then
- stunden = "0" & Convert.ToString(Date.Now.Hour)
- Else
- stunden = Convert.ToString(Date.Now.Hour)
- End If
- Dim minuten As String
- If Convert.ToInt32(Date.Now.Minute) < 10 Then
- minuten = "0" & Convert.ToString(Date.Now.Minute)
- Else
- minuten = Convert.ToString(Date.Now.Minute)
- End If
- Dim sekunden As String
- If Convert.ToInt32(Date.Now.Second) < 10 Then
- sekunden = "0" & Convert.ToString(Date.Now.Second)
- Else
- sekunden = Convert.ToString(Date.Now.Second)
- End If
- Dim millisekunden As String
- If Convert.ToInt32(Date.Now.Millisecond) < 10 Then
- millisekunden = "00" & Convert.ToString(Date.Now.Millisecond)
- ElseIf Convert.ToInt32(Date.Now.Millisecond) < 100 Then
- millisekunden = "0" & Convert.ToString(Date.Now.Millisecond)
- Else
- millisekunden = Convert.ToString(Date.Now.Millisecond)
- End If
- txtAusgabe.Text = text & Convert.ToString("<--" & tag & "." & monat & "." & Date.Now.Year & " " & stunden & ":" & minuten & ":" & sekunden & "." & millisekunden & " [RX] - " & input & vbCrLf)
- txtAusgabe.SelectionStart = Len(txtAusgabe.Text)
- txtAusgabe.ScrollToCaret()
- txtAusgabe.Select()
- Catch ex As Exception
- txtAusgabe.Text = text & Convert.ToString(ex) & vbCrLf
- End Try
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „a.b_om“ ()