Seite 1 von 1

Puffergröße einer seriellen Verbindung

Verfasst: 17.06.2013 11:22
von SBond
Hi Leute,

Ich habe folgendes Problem: Ich empfange über ein COM-Port Daten, die ich auswerte. Nun möchte ich gerne zyklisch prüfen, ob ein Bufferoverflow stattgefunden hat. Nun gibt es ja die Möglichkeit über "SerialPortError(#SerialPort)" den Fehler abzufangen, aber es wird kein Bufferoverflow-Fehler registriert, obwohl es passiert.

Ich habe immer wieder festgestellt, dass der Eingangspuffer eine max. größe von 12328 Bytes hat. Mehr Bytes werden scheinbar nicht mehr gespeichert. Dieser Wert scheint irgendwie von Windows zu kommen, lässt sich aber nicht im Geräte-Manager beeinflussen.

weiß jemand, wie sich dieser Wert zusammensetzt.... oder wo man diesen einstellen kann?
...oder wo man diesen Wert auslesen kann (wäre mir am wichtigsten)

Gruß
SBond

Re: Puffergröße einer seriellen Verbindung

Verfasst: 17.06.2013 11:47
von NicTheQuick
Die Puffergröße kann man direkt bei 'OpenSerialPort()' angeben. Aber ich habe leider noch keine Erfahrung mit Überläufen. Bisher habe ich immer geschaut, dass die nicht auftreten und war erfolgreich damit. ;)

Re: Puffergröße einer seriellen Verbindung

Verfasst: 17.06.2013 12:06
von SBond
tja... ähhh...

klappt nicht. :mrgreen:

Beim Eingangspuffer und Ausgangspuffer kann ich eingeben was ich will. Egal ob ich 10 Bytes oder 1.000.000 Bytes einstelle, es habe immer einen Überlauf bei 12.382 Bytes. Einen Felher gibt SerialPortError() auch nicht aus. Die Wahrscheinlichkeit, dass es überläuft, ist gering. Aber ich muss sicherstellen, dass die Daten die ich in einem bestimmten Zeitraum aufnehme konsistent bleiben.

Ich Frage mich wo diese Puffergrenze definiert wird. 8192 oder 4096 hätte ich ja noch irgendwo verstanden, aber 12382 ?
...seltsam seltsam