Forum: PC-Programmierung Events in C# in Verbindung mit ComPort


von Tobi (Gast)


Lesenswert?

Hallo an alle.

Bin mal ein bisschen in die Visual C# programmierung mit .Net 2.0 
eingestiegen und wollte da mal ein bisschen rumspielen,
und ein Windowsprogramm erstellen mit dem ich Daten an meinen uC senden 
kann und umgekehrt.

Das senden von Pc an den uC funktioniert soweit auch schon ohne 
Probleme.
Aber kann mir bitte mal jemand erklaeren wie ich
das Datenempfangen im Pc behandel kann.

Das geht wohl ueber das Rx-Event der  System.IO.Ports Klasse.
Aber wie kann ich z.B. einer TextBox sagen das sie dieses Event 
abonnieren soll ???

Schonmal danke im vorraus....

von Willi K. (Gast)


Lesenswert?

Hi,

ich weiss nicht ob es möglich ist, dass die TextBox das Event 
"abonnieren" kann. Aber man kann es mit Hilfe eines delegate lösen.

Bsp.:

<CODE>
// in der Klasse bei den Variablen defineieren
private delegate void ReceiveVerarbeitungHandler(byte[] buffer);
ReceiveVerarbeitungHandler DelegateReceiveVerarbeitung;

...
private void serialPort1_DataReceived(object sender, EventArgs e)
{
int bytes = serialPort1.BytesToRead();
byte[] buffer = new byte[bytes];
serialPort1.Read(buffer, 0, bytes);
ReceiveVerarbeitung(buffer);
}

private void ReceiveVerarbeitung(byte[] buffer)
{
// hier machst du mit dem ausgelesenen buffer was du möchtest
// z.B.
}
</CODE>

Müsste soweit gehen, habs aus dem Gedächtnis hier mal einfach 
reingeschrieben (also nicht getestet oder compiliert).

Gruß, Willi


von Willi K. (Gast)


Lesenswert?

hab da noch was vergessen:

InitializeForm()
{
...
DelegateReceiveVerarbeitung = new 
ReceiveVerarbeitungHandler(ReceiveVerarbeitung);
}

Nun sollte es tun

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.