mikrocontroller.net

Forum: PC-Programmierung OOP - .NET - Frage


Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Bisher habe ich "C"-Programmierung (Mikrocontroller) gemacht. Windows
und objektorientierte Programmierung ist noch ungewohnt. Umgebung:
Visual C# 2005 Express.

Eine Anwendung soll via RS232 mit einem µC kommunizieren. Nun sind z.B.
Konfigurationsbytes zu versenden (z.B. bei Druck auf Button_1) und
Datenbytes zu empfangen/abzuspeichern (z.B. bei Druck auf Button_2).

Testweise habe ich das mittels "SerialPort mPort = new
SerialPort();...usw..." in den entsprechenden
button_click()-Funktionen erledigt. Nur scheint mir das irgendwie
unelegant, jedesmal ein Objekt SerialPort zu intanziieren, das
ms-später mit close() arbeitslos wird. Wird doch eh immer ein und
derselbe Port verwendet...der nun aber in x-Instanzen auf Garbage
Collection wartet?!

Suche einen Ansatz, wie man soetwas besser angehen könnte

Thx - Micha

Autor: sackgesicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entweder den SerialPort beim Erzeugen der Form instanzieren und beim
Löschen der Form wieder entfernen, oder zwei extra Buttons dafür
spendieren.

Ich kenne Visual C# 2005 Express zwar (noch) nicht, aber FormCreate-
und FormTerminate-Ereignisse (o. ä.) sollte es da auch geben.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

oder gleich eine Klasse aus rum um die Kommunikation. Diese hat dann
nur noch die Schnittstellen openCom, closeCom, sendCommand und
getCommand. Und in dieser Klasse schiebt man dann noch gleich einen
Thread an....

Matthias

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias u. sackgesicht,

beides kombiniert scheint mir geeignet. Ne Klasse, die mir die
Kommunikation mundgerecht abwickelt und die beim Erzeugen der Form
einmalig instanziiert wird.

Extra Thread wird nicht nötig sein, so wie ich das verstehe.
Konfigbytes sind es nur ein paar-->in ms erledigt und solange ein
längerdauernde Datentransfer läuft, kann man eh nicht sinnvoll anderes
"klicken" (außer Button_abbrechen betätigen).

Danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.