Serieele data verwerken vanuit arduino

Status
Niet open voor verdere reacties.

Vbuser

Gebruiker
Lid geworden
31 jan 2013
Berichten
11
Ik heb een arduino met 4 buttons.
De commando's(string) verstuur ik serieel naar vb 2010.
Ik kan de string ontvangen, in RichTextBox1.
Alle 4 de buttons komen netjes binnen.Com VB Arduino.PNG

Het vreemde is dat ik de data verder niet kan verwerken, of ik weet niet hoe.
Ik wilde dus
Code:
        If RichTextBox1.Text = "F1_actief" Then
            PictureBox1.BackColor = Color.Red
        End If

Dit lukt niet hij kleurt niet om.
De hele code:Com VB Arduino.PNG

Code:
Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel



Public Class form1



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False

        Try
            For Each port As String In SerialPort.GetPortNames()
                ComboBox1.Items.Add(port)
            Next
            ComboBox1.SelectedIndex = 0
            ComboBox2.SelectedItem = "9600"
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try



    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SerialPort1.BaudRate = Val(ComboBox2.SelectedItem)
        SerialPort1.PortName = ComboBox1.SelectedItem

        If Button1.Text = "connect" Then
            Try
                SerialPort1.Open()
                Button1.Text = "disconnect"
                TextBox1.Enabled = True
            Catch ex As Exception

            End Try

        Else
            SerialPort1.Close()
            TextBox1.Enabled = True
            Button1.Text = "Connect"
        End If
    End Sub

    Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            SerialPort1.Write(TextBox1.Text)
            TextBox1.Clear()
        End If
    End Sub

    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        RichTextBox1.Text &= SerialPort1.ReadExisting()

    End Sub

    Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged

        If RichTextBox1.Text = "F1_actief" Then
            PictureBox1.BackColor = Color.Red
        End If

    End Sub
End Class


Wie zou me op weg kunnen helpen?
 
Heb je wel gecontroleerd via breakpoints dat de textchanged wordt aangeroepen?

Indien dat goed gebeurt heb je er misschien mee te maken dat de verandering async gebeurt en je de verandering niet direct doorkomt op de picturebox.

Heb je ergens ook nog code die de picturebox weer in zwart terug veranderd? Werkt het veranderen van de kleur wel goed in de hoofdroutine?
 
Heb je wel gecontroleerd via breakpoints dat de textchanged wordt aangeroepen?

Indien dat goed gebeurt heb je er misschien mee te maken dat de verandering async gebeurt en je de verandering niet direct doorkomt op de picturebox.

Heb je ergens ook nog code die de picturebox weer in zwart terug veranderd? Werkt het veranderen van de kleur wel goed in de hoofdroutine?

Het is me nog niet duidelijk wat ik met breakpoints kan doen.
Ik ben nog redelijk onervaren op dit gebied, maar leer gaandeweg.
 
je zet een breakpoint en laat je programma draaien. Als het nergens stopt komt het niet bij je breakpoint :)

Komt het wel bij je breakpoint kan je de waarden en toestand van al je variabelen zien en kijken of dat de staat is die je verwacht. Gewoon een aan de linkerkant van je regel in de marge clicken en je krijgt een rood bolletje waar je breakpoint zal zijn.
 
je zet een breakpoint en laat je programma draaien. Als het nergens stopt komt het niet bij je breakpoint :)

Komt het wel bij je breakpoint kan je de waarden en toestand van al je variabelen zien en kijken of dat de staat is die je verwacht. Gewoon een aan de linkerkant van je regel in de marge clicken en je krijgt een rood bolletje waar je breakpoint zal zijn.

Dank je Wampier, ik zal dit gaan testen.
 
Ik heb het idee van de breakpoint door.
Nu nog even testen icm Arduino.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan