Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Comport Problem bei Einstellg unterschiedlicher Baudraten
macke_a
myCSharp.de - Member



Dabei seit:
Beiträge: 291
Herkunft: Münsterland

Themenstarter:

Comport Problem bei Einstellg unterschiedlicher Baudraten

beantworten | zitieren | melden

Hallo..

Ich verwende den C# Wrapper von CommBase.cs um mein Comport zu initialisieren.

Für die Kommunikation mit meiner Gegenstelle verwende ich eine Baudrate von 9600, nach Austausch von mehreren Daten muss ich auf 34800 wechseln.

Meine Sourcecode sieht einfach dargestellt folgendermaßen aus:

private Serial ComPort;

ComPort = new Serial("COM2:", 9600);         
ComPort.Open();
ComPort.OnDataReceived += new Serial.OnDataReceivedEventHandler(OnData);

// Ca. 7 Sekunden Verzögerung beim Umstellen der Baudrate aufgrund Austausch der Anfangstelegramme

ComPort.Close();
ComPort.ComPort = "COM2";
ComPort.Baudrate = 38400;
ComPort.Open()

Bei der Initailisierung mit 9600 funktioniert der Empfang und das Senden der Daten,
bei der Umstellung auf 38400 funktioniert das Senden der Daten, aber der Empfang nicht mehr.

Kennt jemand möglich Ursachen, die in Verbindung mit dem C# Wrapper von CommBase.cs stehen?

Freue mich auf antworten...

Gruss macke_a
private Nachricht | Beiträge des Benutzers
NoLimit
myCSharp.de - Member



Dabei seit:
Beiträge: 191
Herkunft: Simmozheim (nähe Stuttgart)

beantworten | zitieren | melden

Ich kenne den Wrapper nicht, aber ich denke du wirst deinen Eventhandler nach dem erneuten öffnen nochmals initialisieren müssen


private Serial ComPort;

ComPort = new Serial("COM2:", 9600);
ComPort.Open();
ComPort.OnDataReceived += new Serial.OnDataReceivedEventHandler(OnData);

// Ca. 7 Sekunden Verzögerung beim Umstellen der Baudrate aufgrund Austausch der Anfangstelegramme

ComPort.OnDataReceived -= new Serial.OnDataReceivedEventHandler(OnData);
ComPort.Close();
ComPort.ComPort = "COM2";
ComPort.Baudrate = 38400;
ComPort.Open();
ComPort.OnDataReceived += new Serial.OnDataReceivedEventHandler(OnData);
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von NoLimit am .
"If you give someone a
program, you will frustrate them
for a day; if you teach them how to
program, you will frustrate them
for a lifetime." :evil:
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1.688

beantworten | zitieren | melden

Zitat von macke_a
Kennt jemand möglich Ursachen, die in Verbindung mit dem C# Wrapper von CommBase.cs stehen?

Hast Du denn eine andere Anwendung, mit der es funktioniert?

Prinzipiell habe ich aber noch gar nicht verstanden, warum und wie Du die Bitrate wechselst. Wo teilst Du denn der Gegenstelle mit, dass sie die Bitrate ändern soll? Und wie wird die wieder zurückgesetzt, wenn Dein Programm neu startet?

Ansonsten kann es natürlich sein, dass der Wrapper die Schnittstelle nicht nur neu öffnen muss, sondern auch der Wrapper neu erzeugt werden muss.
private Nachricht | Beiträge des Benutzers