www.mikrocontroller.net

Forum: PC-Programmierung c# SerialPort.ReadExisting-Methode


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Alex (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo Leute, ich habe ein Verständnisproblem. In Beschreibung der 
SerialPort.ReadExisting-Methode steht:"Liest alle sofort verfügbaren 
Bytes auf Grundlage der Codierung sowohl im Stream als auch im 
Eingabepuffer des SerialPort-Objekts."
 Was ist Stream und Eingabepuffer? Wie unterscheiden sie?

Autor: bluppdidupp (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Der Aufbau ist z.B. wie folgt:
SerialPort.ReadChar() -> Eingabe-Puffer (inBuffer) -> SerialStream -> 
Treiber

.ReadChar() versucht Byte(s) im inBuffer in ein Char umzuwandeln. Sind 
im inBuffer nicht genügend Daten holt er sich weitere Bytes aus dem 
Stream in den inBuffer.
Der inBuffer ist nur ein internes Hilfs-Array der SerialPort-Klasse, die 
für die Konvertierung passend zum eingestellten Zeichensatz 
(SerialPort.Encoding)  benötigt wird. Auf den inBuffer hat man keinen 
direkten Zugriff.

Arbeitet man nicht mit Zeichen(-ketten) - nur mit Bytes - könnte man 
auch via SerialPort.BaseStream direkt den Stream holen und die ganzen 
.ReadXXX und .WriteXXX Funktionen der SerialPort-Klasse ignorieren.

.ReadBufferSize hat mit dem inBuffer übrigens nichts zu tun, das ist 
eine Empfehlung für die Größe eines Puffers von Treiber/Hardware - die 
der Treiber aber ignorieren darf.

(diese Schlüssen hab ich einfach mal durch grobes anschauen der 
SerialPort-Klasse via ILSpy gezogen - alle Angaben ohne Gewähr ;D)

Autor: Alex (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net