Hallo,
ich versuche von einem Arduino zusammengesetzte Daten in Vb aufzuschlüssel um es in verschiedenen Textboxen anzuzeigen.
Leider kann ich die daten für eine Textbox splitten, sobald ich mehrere einsetze bekomme ich eine Fehlermeldung :
System.IndexOutofRangeException das Feld(1) ausserhalbe des Array wäre.
Was mache ich falsch?
Vielen Dank für die Hilfe
Die Daten sind auf Arduino-Seite:
Auf der VB-Seite :
Code-Tag eingefügt. ~Thunderbolt
ich versuche von einem Arduino zusammengesetzte Daten in Vb aufzuschlüssel um es in verschiedenen Textboxen anzuzeigen.
Leider kann ich die daten für eine Textbox splitten, sobald ich mehrere einsetze bekomme ich eine Fehlermeldung :
System.IndexOutofRangeException das Feld(1) ausserhalbe des Array wäre.
Was mache ich falsch?
Vielen Dank für die Hilfe
Die Daten sind auf Arduino-Seite:
Auf der VB-Seite :
VB.NET-Quellcode
- Imports System
- Imports System.IO.Ports
- Public Class Form1
- Dim comPORT As String
- Dim Feld() As String
- Dim receivedData As String = ""
- Dim WithEvents serialPort As New SerialPort
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Timer1.Enabled = False
- comPORT = ""
- For Each sp As String In My.Computer.Ports.SerialPortNames
- comPort_ComboBox.Items.Add(sp)
- Next
- End Sub
- Private Sub comPort_ComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comPort_ComboBox.SelectedIndexChanged
- If (comPort_ComboBox.SelectedItem <> "") Then
- comPORT = comPort_ComboBox.SelectedItem
- End If
- End Sub
- Private Sub connect_BTN_Click(sender As Object, e As EventArgs) Handles connect_BTN.Click
- If (connect_BTN.Text = "Connect") Then
- If (comPORT <> "") Then
- SerialPort1.Close()
- SerialPort1.PortName = comPORT
- SerialPort1.BaudRate = 115200
- SerialPort1.DataBits = 8
- SerialPort1.Parity = Parity.None
- SerialPort1.StopBits = StopBits.One
- SerialPort1.Handshake = Handshake.None
- SerialPort1.Encoding = System.Text.Encoding.Default 'very important!
- SerialPort1.ReadTimeout = 10000
- SerialPort1.Open()
- connect_BTN.Text = "Dis-connect"
- Timer1.Enabled = True
- Timer_LBL.Text = "Timer: ON"
- Else
- MsgBox("Select a COM port first")
- End If
- Else
- SerialPort1.Close()
- connect_BTN.Text = "Connect"
- Timer1.Enabled = False
- Timer_LBL.Text = "Timer: OFF"
- End If
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- receivedData = ReceiveSerialData()
- Feld = receivedData.Split(",")
- RichTextBox1.Text = Feld(0)
- RichTextBox2.Text = Feld(1)
- RichTextBox3.Text = Feld(2)
- End Sub
- Function ReceiveSerialData() As String
- Dim Incoming As String
- Try
- Incoming = SerialPort1.ReadExisting()
- If Incoming Is Nothing Then
- Return "nothing" & vbCrLf
- Else
- Return Incoming
- End If
- Catch ex As TimeoutException
- Return "Error: Serial Port read timed out."
- End Try
- End Function
- Private Sub clear_BTN_Click(sender As Object, e As EventArgs) Handles clear_BTN.Click
- RichTextBox1.Text = ""
- RichTextBox2.Text = ""
- End Sub
- End Class
Code-Tag eingefügt. ~Thunderbolt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()