Forum: PC-Programmierung DataReceived Evenet funktioniert nicht


von grex (Gast)


Lesenswert?

Hallo Leute, da ich mit der Suchenfunktion nur mehr verwirrt wurde als
geholfen, möchte ich bezüglich "Empfang and der RS232" nochmal einen
neuen Beitrag anfangen.

Ich verwende VB.NET 2005 mit Framework 2.0 und ich bin gerade dabei
über die RS232 (System.io.ports) zu kommunizieren.

Es ist mir gelungen Byte´s an einen Controller zu senden (write), doch
leider gelingt mir der Empfang nicht wirklich.

Ich würde gerne das Event:"DataReceived" verwenden, doch leider hängt
er sich immer auf. Ich habe es auch schon per Button versucht die Daten
zu empfangen, doch leider funktioniert das auch nicht.

Wie gesagt senden funktioniert, empfangen nicht.

Hir der stand der Dinge:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click

    Dim Wert As Byte
    Wert = SerialPort1.ReadLine
    txtInput.Text = Wert

End Sub



Lg grex

von Karl heinz B. (kbucheg)


Lesenswert?

Schickt dein Mikro auch einen NewLine?

von grex (Gast)


Lesenswert?

Ja hab ich mit einem Terminalprogramm mehrmals erfolgreich probiert.

Mit dem Terminalp. funktionierts einwandfrei.

lg grex

von Slowflyer (Gast)


Lesenswert?

Was meinst du mit "hängt sich auf"? Was passiert dabei? Werden keine
Exceptions geworfen? Hast du bei der Initialisierung des serialPorts
den Eventhandler für DataReceived hinzugefügt?

Ich verwende ebenfalls die serialPort-Klasse des .Net 2.0 nur halt in
C# und der DataReceived Eventhandler funktioniert einwandfrei. Hier ein
paar Codeschnipsel (vielleicht hilfts).

<CODE>
// Initialisierung
this.serialPort1.ParityReplace = ((byte)(0));
      this.serialPort1.PortName = "COM2";
      this.serialPort1.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1DataRecei 
ved);

...
...

// DataReceived Eventhandler
void serialPort1DataReceived(object sender, System.EventArgs e)
{
  byte[this.serialPort1.BytesToRead] buffer;
        this.serialPort1.Read(buffer, 0,
this.serialPort1.BytesToRead);

this.richTextBox1.AppendText("Empfangen:  "+buffer.ToString());
}

von grex (Gast)


Lesenswert?

Hallo Slowflyer,
nein den "Eventhandler habe ich nicht hinzugefügt. Wofür ist der? Wo
fügt man den ein? (ev. jemand ein Bsp. in VB.NET?)

LG

von Slowflyer (Gast)


Lesenswert?

Wie man einen Eventhandler in VB bekannt macht weiss ich nicht, da hilft
aber oft die MSDN weiter.

http://msdn2.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.