Serport RxBuffer Overrun

  • 1
  • 2
  • Seite 1 von 2
jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 229
Dabei seit: 02 / 2008
Betreff:

Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 12:06 Uhr  ·  #1
Hallo Rolf,
ist es möglich beim Serport RxBuffer einen Überlauf zu detektieren?
also nur ein Flag, keine weitere Aktion.

mfg
Joachim
jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 229
Dabei seit: 02 / 2008
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 14:50 Uhr  ·  #2
hallo,
hab jetz was gefunden,
PipeFull scheint den Überlauf anzuzeigen

Grüße
Joachim
jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 229
Dabei seit: 02 / 2008
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 16:03 Uhr  ·  #3
nochmal,
hab mich wohl zu früh gefreut,
mit PipeFull(rxBuffer) lässt sich wohl kein Überlauf detektieren.
Gibt es da noch eine andere Möglichkeit?

Gruß Joachim
Harald_K
 
Avatar
 
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 17:58 Uhr  ·  #4
du kannst die Variable _rxcount (byte) abfragen - da steht die Anzahl der Zeichen im Puffer drin. Wenn du deinen Puffer 1 Zeichen länger deklarierst als benötigt weißt du, daß wenn _rxcount genauso groß wie die pufferlänge ist ein Zeichen "verlorengegangen" ist -

ok, eigentlich ist es noch da, aber noch ein Zeichen ist dann wirklich verlorengegangen ...

ähnliches Prob gbs übrigens da schonmal:
topic.php?p=21735#real21735
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 18:19 Uhr  ·  #5
Hallo Jo,

dieses overrun Problem ist grundsätzlich bei einer ser. Schnittstelle vorhanden.
Auch beim PC ist der Input Buffer nicht unendlich gross....

Dazu gab es schon immer diese Handshake Leitungen RTS, CTS etc.
Besser ist da ein kleines Handshake zu implementieren. Ein Sender schickt eine
bestimmte Anzahl von Daten und erwartet dann vom Empfänger ein ok, z.B. ACK
bevor er weitermachen kann. So machts der Rest der Welt :-)

Oder es werden Strings geschickt mit einem CR/LF am Ende wenn die Kommunikation
in ASCII erfolgt. Blind drauf losschiessen ist beim RS232 unhöflich....

rolf
jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 229
Dabei seit: 02 / 2008
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 19:12 Uhr  ·  #6
Hallo zusammen,
das mit den Puffern und dem Handshake ist mir schon alles klar.
Ich hab gerade ein kleines Problem und da würde mir schon reichen wenn ich wüßte dass es von einem
Überlauf kommt.
was macht eigentlich der _rxcount bei einem Überlauf?
Pufferlänge ist bei mir 255

Gruß und Dank
Joachim
Harald_K
 
Avatar
 
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 09.11.2015 - 19:23 Uhr  ·  #7
denke mal daß der einfach stehenbleibt ...

bei 255er Pufferlänge hast du mit nem Byte natürlich keine Chance - aber wenn du sagst, 255 ist Überlauf, dann hast du immer noch 254 Zeichen effektiv nutzbaren Puffer, und das sollte ja wohl reichen ...
AVRfan
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 69
Beiträge: 16
Dabei seit: 11 / 2009
Betreff:

Re: Serport RxBuffer Overrun

 · 
Gepostet: 10.11.2015 - 14:29 Uhr  ·  #8
Hallo,
ein Overrun ist immer von Übel !!!
Egal wie sich ein System verhält, es gehen Zeichen verloren.
Da hilft es auch nicht viel zu wissen, dass ein Überlauf statt gefunden hat.
Ganz einfach, ein Overrun darf einfach nicht stattfinden.
Handshake, CRLF usw. hilft da viel weiter. Nicht die Symptome kurieren
wollen, sondern die Ursache beseitigen.
  • 1
  • 2
  • Seite 1 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   139   153 · Page-Gen-Time: 0.026483s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI