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?
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.