Entwickler-Ecke

C# - Die Sprache - Serielle Schnittstelle abfragen...


Sharpy78 - Mi 12.12.07 13:05
Titel: Serielle Schnittstelle abfragen...
Hi :wave:

ich möchte gerne die Serielle Schnittstelle abfragen. Unter .NET 3.5 gibt es eine tolle Komponente dafür.
Ich habe folgenen Quellcode im DATA RECEIVED Event:


C#-Quelltext
1:
2:
3:
4:
5:
        private void spMain_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            strRs232RX = strRs232RX + spMain.ReadExisting();
            txtbMain.Text = strRs232RX;
        }


txtbMain.Text = strRs232RX;

Gibt immer eine Fehlermeldung das Konflicte mit anderen Theards geben würde.
Hmm wie macht man das nun?

Wie bekommt man die Daten in einer Textbox angezeigt?
Ich muß gestehen ich bin C# Neuling, habe aber prinzipiel Erfahrungen in der Programmiererei.




MfG
Frank


Sharpy78 - Mi 12.12.07 14:53

Rehallo,

habe nochmal etwas experimentiert.
Wenn ich folgenen Quellcode verwende bekomme ich die Daten in eine Messagebox.


C#-Quelltext
1:
2:
3:
4:
        private void spMain_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            MessageBox.Show(spMain.ReadExisting());
        }




Wie aber bekommt man die Daten in eine Textbox???


Kha - Mi 12.12.07 18:04

Windows-Controls sind nicht threadsafe, weswegen du die UI nur in dem Thread manipulieren kannst, der sie erstellt hat. Am einfachsten funktioniert das per Control.Invoke (asynchron per BeginInvoke), dieser Methode übergibst du den im UI-Thread auszuführenden code als Delegate ("Funktionszeiger").


Sharpy78 - Do 13.12.07 19:37

Hallo,

danke für die Antwort, ich muß da erstmal nachlesen was das nun ist. :-)

MfG Frank